Monitoring Module
From OpenSimulator
Contents |
Introduction
This facility provides a way to retrieve data per region.
Enabling
In OpenSimulator 0.7.2 it is always active. In current development code it is active by default but can be disabled by setting
[Monitoring] Enabled = false
Retrieving data
OpenSimulator 0.7.2 and earlier
In OpenSimulator 0.7.2 and earlier, each region will register a URL on the built-in OpenSimulator HTTP server with the format
/monitorstats/<region-uuid>
If you type
show http-handlers
on the region console you'll see something like this in the HTTP section
/monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c81 /SStats/ /CAPS/VS/ regionImagedd5b77f8bf8845acaace35bd76426c81 /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c82 regionImagedd5b77f8bf8845acaace35bd76426c82
where the UUID following monitorstats corresponds to the region ID.
OpenSimulator development code
In OpenSimulator development code, the region data can also be accessed via region name. Therefore, typing
show http-handlers
will return something like
/monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c81 /monitorstats/test /SStats/ /CAPS/VS/ regionImagedd5b77f8bf8845acaace35bd76426c81 /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c82 /monitorstats/test2 regionImagedd5b77f8bf8845acaace35bd76426c82
where the data can also be retrieved via region name (test and test2).
Retrieved data
General
Stat name | Descriptoin |
---|---|
AgentCountMonitor | Number of avatars in the region. |
ChildAgentCountMonitor | Number of child agents in the region. These are used by viewers with avatars in neighbouring regions in order to see into and effect the neighbouring region. |
GCMemoryMonitor | Amount of memory currently allocated to the virtual machine garbage collector. |
ObjectCountMonitor | Number of prims in the region. |
PWSMemoryMonitor | Virtual Machine Private Working Set memory |
ThreadCountMonitor | Number of threads used by the current process. May be unimplemented (hence always zero) on Mono. |
TotalFrameMonitor | Time taken in milliseconds for the last frame. In OpenSimulator 0.7.3.1 and before this did not include the spare frame time. In later versions of OpenSimulator this does include the spare frame time. |
EventFrameMonitor | Event processing time in milliseconds for the last frame. |
LandFrameMonitor | Land related processing time in milliseconds for the last frame. |
LastFrameTimeMonitor | The number of milliseconds since the last region frame was completed. |
TimeDilationMonitor | Time dilation of physics processing compared to main scene processing. |
SimFPSMonitor | Frames per second processed by the scene. |
PhysicsFPSMonitor | Frames per second processed by physics code. |
AgentUpdatesPerSecondMonitor | Updates sent to viewers per second. |
ActiveObjectCountMonitor | Objects subject to physics. |
ActiveScriptsMonitor | Scripts running in the region |
ScriptEventsPerSecondMonitor | Script events processed per second. |
InPacketsPerSecondMonitor | UDP packets from viewers processed per second. |
OutPacketsPerSecondMonitor | UDP packets sent to viewers per second |
UnackedBytesMonitor | Bytes that haven't yet been acked by viewers. A persistent high number indicates poor network connections between the viewers and the simulator. |
PendingDownloadsMonitor | Downloads pending from simulator to viewers. Not currently implemented, will always be zero. |
PendingUploadsMonitor | Pending uploads from viewers to simulator. Not currently implemented, will always be zero. |
TotalFrameTimeMonitor | Average time taken in milliseconds for frames in the last 3 seconds. In OpenSimulator 0.7.3.1 and before this did not include the spare frame time and wrongly referred to the total amount of a second that constituted non-spare frame time. In later versions of OpenSimulator this correctly refers to the frame time and includes the spare frame time. |
NetFrameTimeMonitor | Average time taken in milliseconds for network activities in frames in the last 3 seconds. Not currently used. |
SimulationFrameTimeMonitor | Average time taken in milliseconds for frame-related simulation activity in the last 3 seconds. In OpenSimulator 0.7.3.1 and before this wrongly referred to the total amount of a second that constituted simulation time. |
AgentFrameTimeMonitor | Average time taken in milliseconds for agent-related activity in the last 3 seconds. In OpenSimulator 0.7.3.1 and before this wrongly referred to the total amount of a second that constituted agent time. |
ImagesFrameTimeMonitor | Not used by OpenSimulator |
LastReportedObjectUpdates | Currently unused. |
More to follow
Physics
The following physics stats are always present.
PhysicsFrameMonitor | Obsolete. Same as PhysicsFrameTimeMonitor |
PhysicsFrameTimeMonitor | Average amount of time taken by physics processing per frame |
More to follow
Examples
OpenSimulator 0.7.2 and earlier
On OpenSimulator 0.7.2 and earlier, fetching
http://192.168.1.2:9000/dd5b77f8-bf88-45ac-aace-35bd76426c81
will return something like
<?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 and later
In current development code, more statistics have been added, so instead you'll see something like
<?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>