Monitoring Module/de
From OpenSimulator
Contents |
Einleitung
Diese Funktion bietet eine Möglichkeit, Daten pro Region abzurufen.
HINWEIS: Diese Funktion ist veraltet und könnte in zukünftigen Versionen des Simulators entfernt werden. Siehe Monitoring für Informationen zu den aktuellen Monitoring-Schnittstellen.
Aktivierung
In OpenSimulator 0.7.2 ist sie immer aktiv. Im aktuellen Entwicklungscode ist sie standardmäßig aktiv, kann aber deaktiviert werden durch
[Monitoring] Enabled = false
Daten abrufen
OpenSimulator 0.7.2 und früher
In OpenSimulator 0.7.2 und früher registriert jede Region eine URL auf dem eingebauten HTTP-Server von OpenSimulator im Format
/monitorstats/<region-uuid>
Wenn du
show http-handlers
in der Region-Konsole eingibst, siehst du im HTTP-Abschnitt etwa Folgendes:
/monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c81 /SStats/ /CAPS/VS/ regionImagedd5b77f8bf8845acaace35bd76426c81 /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c82 regionImagedd5b77f8bf8845acaace35bd76426c82
wobei die UUID nach monitorstats der Regions-ID entspricht.
OpenSimulator Entwicklungscode
Im Entwicklungscode von OpenSimulator können Regionsdaten auch über den Regionsnamen abgerufen werden. Daher ergibt die Eingabe von
show http-handlers
etwa Folgendes:
/monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c81 /monitorstats/test /SStats/ /CAPS/VS/ regionImagedd5b77f8bf8845acaace35bd76426c81 /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c82 /monitorstats/test2 regionImagedd5b77f8bf8845acaace35bd76426c82
wobei die Daten auch über den Regionsnamen (test und test2) abgerufen werden können.
Abgerufene Daten
Allgemein
Stat name | Beschreibung |
---|---|
AgentCountMonitor | Anzahl der Avatare in der Region. |
ChildAgentCountMonitor | Anzahl der Child Agents in der Region. Diese werden von Viewern mit Avataren in benachbarten Regionen verwendet, um in die Nachbarregion zu sehen und sie zu beeinflussen. |
GCMemoryMonitor | Menge des aktuell vom Garbage Collector der virtuellen Maschine belegten Speichers. |
ObjectCountMonitor | Anzahl der Prims in der Region. |
PWSMemoryMonitor | Private Working Set Speicher der virtuellen Maschine. |
ThreadCountMonitor | Anzahl der vom aktuellen Prozess verwendeten Threads. Unter Mono möglicherweise nicht implementiert (daher immer null). |
TotalFrameMonitor | Zeit in Millisekunden für das letzte Frame. In OpenSimulator 0.7.3.1 und früher war die Reserve-Frame-Zeit nicht enthalten. In späteren Versionen ist sie enthalten. |
EventFrameMonitor | Zeit für die Ereignisverarbeitung im letzten Frame in Millisekunden. |
LandFrameMonitor | Zeit für landbezogene Verarbeitung im letzten Frame in Millisekunden. |
LastFrameTimeMonitor | Anzahl der Millisekunden seit Abschluss des letzten Region-Frames. |
TimeDilationMonitor | Zeitdilatation der Physikverarbeitung im Vergleich zur Hauptszenenverarbeitung. |
SimFPSMonitor | Frames pro Sekunde, die von der Szene verarbeitet werden. |
AgentUpdatesPerSecondMonitor | Updates pro Sekunde, die an Viewer gesendet werden. |
ActiveObjectCountMonitor | Objekte, die der Physik unterliegen. |
ActiveScriptsMonitor | Skripte, die in der Region ausgeführt werden. |
ScriptEventsPerSecondMonitor | Skript-Ereignisse pro Sekunde. |
InPacketsPerSecondMonitor | UDP-Pakete von Viewern, die pro Sekunde verarbeitet werden. |
OutPacketsPerSecondMonitor | UDP-Pakete, die pro Sekunde an Viewer gesendet werden. |
UnackedBytesMonitor | Bytes, die noch nicht von Viewern bestätigt wurden. Eine dauerhaft hohe Zahl weist auf schlechte Netzwerkverbindungen zwischen Viewern und Simulator hin. |
PendingDownloadsMonitor | Ausstehende Downloads vom Simulator zu Viewern. Derzeit nicht implementiert, daher immer null. |
PendingUploadsMonitor | Ausstehende Uploads von Viewern zum Simulator. Derzeit nicht implementiert, daher immer null. |
TotalFrameTimeMonitor | Durchschnittliche Zeit in Millisekunden für Frames in den letzten 3 Sekunden. In OpenSimulator 0.7.3.1 und früher wurde die Reserve-Frame-Zeit nicht berücksichtigt und fälschlich als Gesamtzeit eines Frames ohne Reservezeit angegeben. In späteren Versionen wird die Frame-Zeit korrekt angegeben und enthält die Reservezeit. |
NetFrameTimeMonitor | Durchschnittliche Zeit in Millisekunden für Netzwerkaktivitäten in Frames der letzten 3 Sekunden. Derzeit nicht verwendet. |
SimulationFrameTimeMonitor | Durchschnittliche Zeit in Millisekunden für simulationsbezogene Aktivitäten in Frames der letzten 3 Sekunden. In OpenSimulator 0.7.3.1 und früher fälschlich als Gesamtzeit eines Frames für Simulation angegeben. |
AgentFrameTimeMonitor | Durchschnittliche Zeit in Millisekunden für agentenbezogene Aktivitäten in den letzten 3 Sekunden. In OpenSimulator 0.7.3.1 und früher fälschlich als Gesamtzeit eines Frames für Agenten angegeben. |
ImagesFrameTimeMonitor | Wird von OpenSimulator nicht verwendet. |
LastReportedObjectUpdates | Derzeit nicht verwendet. |
Physik
Alle Zeiten pro Frame beziehen sich hier auf einen Durchschnitt über die letzten 3 Sekunden.
Die folgenden Statistiken sind immer vorhanden:
PhysicsFPSMonitor | Frames pro Sekunde, die vom Physik-Code verarbeitet werden. |
PhysicsFrameMonitor | Veraltet. Entspricht PhysicsFrameTimeMonitor. |
PhysicsFrameTimeMonitor | Durchschnittliche Zeit für die Physikverarbeitung. |
Die folgenden Statistiken sind nur vorhanden, wenn collect_stats = true im Abschnitt [ODEPhysicsSettings] der OpenSim.ini gesetzt ist (ab git master 6375db1, nach OpenSimulator 0.7.3.1 Entwicklungscode). Diese Statistiken sind experimentell und können sich ändern.
ODETotalFrameMS | ODE Physikverarbeitung. Sollte mit PhysicsFrameTimeMonitor übereinstimmen. |
ODEAvatarTaintFrameMS | Verarbeitung von Avatar-Taint. |
ODEPrimTaintFrameMS | Verarbeitung von Prim-Taint. |
ODEAvatarForcesFrameMS | Berechnung von Avatar-Kräften. |
ODEPrimForcesFrameMS | Berechnung von Prim-Kräften. |
ODERaycastingFrameMS | Raycasting. |
ODENativeStepFrameMS | Zeit für einen Physikschritt durch nativen ODE-Code. |
ODENativeSpaceCollisionFrameMS | Berechnung möglicher Kollisionen über Räume im nativen ODE-Code. |
ODENativeGeomCollisionFrameMS | Auflösung tatsächlicher Kollisionen zwischen Geometrien im nativen ODE-Code. |
ODEOtherCollisionFrameMS | Verarbeitung von Kollisionen, die nicht durch andere „Native“-Maßnahmen abgedeckt sind. Dies betrifft hauptsächlich Operationen im OpenSimulator-Plugin selbst, obwohl einige native ODE-Funktionen weiterhin aufgerufen werden. |
ODECollisionNotificationFrameMS | Benachrichtigung anderer Teile von OpenSimulator über Kollisionen außerhalb des ODE-Plugins. |
ODEAvatarUpdateFrameMS | Zeit zur Verarbeitung von Avatar-Updates aus dem Physik-Code. |
ODEPrimUpdateFrameMS | Zeit zur Verarbeitung von Prim-Updates aus dem Physik-Code. |
ODEAvatarContacts | Anzahl der durch Avatare verursachten Kollisionskontakte im letzten 3-Sekunden-Zeitraum. Es kann mehr als einen Kontakt pro Kollision geben. |
ODEPrimContacts | Anzahl der durch Prims verursachten Kollisionskontakte im letzten 3-Sekunden-Zeitraum. Es kann mehr als einen Kontakt pro Kollision geben. |
ODETotalAvatars | Anzahl der von der Physik modellierten Avatare. Sollte mit AgentCountMonitor übereinstimmen. |
ODETotalPrims | Anzahl der nicht-phantomhaften Prims. Beinhaltet sowohl Physik-Prims als auch kollidierbare Prims ohne Physik. Phantom-Prims sind nicht enthalten, da sie keine Repräsentation in der Physikszene haben. |
ODEActivePrims | Anzahl der Prims, die der Physik unterliegen. Sollte mit ActiveObjectCountMonitor übereinstimmen. |
Beispiele
OpenSimulator 0.7.2 und früher
Unter OpenSimulator 0.7.2 und früher liefert der Abruf von
http://192.168.1.2:9000/dd5b77f8-bf88-45ac-aace-35bd76426c81
etwa Folgendes:
<?xml version="1.0"?> <data> <AgentCountMonitor>0</AgentCountMonitor> <ChildAgentCountMonitor>0</ChildAgentCountMonitor> <GCMemoryMonitor>32358400</GCMemoryMonitor> <ObjectCountMonitor>0</ObjectCountMonitor> <PhysicsFrameMonitor>0</PhysicsFrameMonitor> <PhysicsUpdateFrameMonitor>0</PhysicsUpdateFrameMonitor> <PWSMemoryMonitor>354172928</PWSMemoryMonitor> <ThreadCountMonitor>0</ThreadCountMonitor> <TotalFrameMonitor>1</TotalFrameMonitor> <EventFrameMonitor>0</EventFrameMonitor> <LandFrameMonitor>0</LandFrameMonitor> <LastFrameTimeMonitor>87</LastFrameTimeMonitor> </data>
OpenSimulator 0.7.3 und höher
Im aktuellen Entwicklungscode wurden weitere Statistiken hinzugefügt, sodass Sie stattdessen etwas wie
<?xml version="1.0"?> <data> <AgentCountMonitor>0</AgentCountMonitor> <ChildAgentCountMonitor>0</ChildAgentCountMonitor> <GCMemoryMonitor>32358400</GCMemoryMonitor> <ObjectCountMonitor>0</ObjectCountMonitor> <PhysicsFrameMonitor>0</PhysicsFrameMonitor> <PhysicsUpdateFrameMonitor>0</PhysicsUpdateFrameMonitor> <PWSMemoryMonitor>354172928</PWSMemoryMonitor> <ThreadCountMonitor>0</ThreadCountMonitor> <TotalFrameMonitor>1</TotalFrameMonitor> <EventFrameMonitor>0</EventFrameMonitor> <LandFrameMonitor>0</LandFrameMonitor> <LastFrameTimeMonitor>87</LastFrameTimeMonitor> <TimeDilationMonitor>1</TimeDilationMonitor> <SimFPSMonitor>56.6666679382324</SimFPSMonitor> <PhysicsFPSMonitor>46.9475212097168</PhysicsFPSMonitor> <AgentUpdatesPerSecondMonitor>0</AgentUpdatesPerSecondMonitor> <ActiveObjectCountMonitor>0</ActiveObjectCountMonitor> <ActiveScriptsMonitor>0</ActiveScriptsMonitor> <ScriptEventsPerSecondMonitor>0</ScriptEventsPerSecondMonitor> <InPacketsPerSecondMonitor>0</InPacketsPerSecondMonitor> <OutPacketsPerSecondMonitor>0</OutPacketsPerSecondMonitor> <UnackedBytesMonitor>0</UnackedBytesMonitor> <PendingDownloadsMonitor>0</PendingDownloadsMonitor> <PendingUploadsMonitor>0</PendingUploadsMonitor> <TotalFrameTimeMonitor>0</TotalFrameTimeMonitor> <NetFrameTimeMonitor>0</NetFrameTimeMonitor> <PhysicsFrameTimeMonitor>0</PhysicsFrameTimeMonitor> <SimulationFrameTimeMonitor>0</SimulationFrameTimeMonitor> <AgentFrameTimeMonitor>0</AgentFrameTimeMonitor> <ImagesFrameTimeMonitor>0</ImagesFrameTimeMonitor> </data>