Monitoring Module

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
m (Robot: Replacing 'OpenSim' to 'OpenSimulator', which is the precise name)
(Add note about this module being deprecated with a pointer to the pages for the newer interfaces.)
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{Quicklinks}}
 +
 
=Introduction=
 
=Introduction=
  
 
This facility provides a way to retrieve data per region.
 
This facility provides a way to retrieve data per region.
 +
 +
NOTE: This feature is deprecated and may be removed in future versions of the simulator. Refer to [[Monitoring]] for information on the current monitoring interfaces.
  
 
= Enabling =
 
= Enabling =
Line 27: Line 31:
 
  regionImagedd5b77f8bf8845acaace35bd76426c81  
 
  regionImagedd5b77f8bf8845acaace35bd76426c81  
 
  /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c82  
 
  /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c82  
  regionImagedd5b77f8bf8845acaace35bd76426c82  
+
  regionImagedd5b77f8bf8845acaace35bd76426c82
 +
 
 +
where the UUID following monitorstats corresponds to the region ID.
  
 
== OpenSimulator development code ==
 
== OpenSimulator development code ==
Line 45: Line 51:
 
  regionImagedd5b77f8bf8845acaace35bd76426c82  
 
  regionImagedd5b77f8bf8845acaace35bd76426c82  
  
where there are two regions called test and test2.
+
where the data can also be retrieved via region name (test and test2).
  
 
= Retrieved data =
 
= Retrieved data =
== OpenSimulator 0.7.2 and earlier ==
+
 
 +
== General ==
 +
 
 +
{| border="1"
 +
! 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.
 +
|-
 +
| 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.
 +
|}
 +
 
 +
== Physics ==
 +
 
 +
All per frame times here relate to an average taken over the last 3 second period.
 +
 
 +
The following stats are always present.
 +
 
 +
{| border="1"
 +
| PhysicsFPSMonitor      || Frames per second processed by physics code.
 +
|-
 +
| PhysicsFrameMonitor    || Obsolete.  Same as PhysicsFrameTimeMonitor
 +
|-
 +
| PhysicsFrameTimeMonitor || Average time taken by physics processing.
 +
|}
 +
 
 +
The following stats are only present if collect_stats = true in the [ODEPhysicsSettings] section of OpenSim.ini as of git master 6375db1 (post OpenSimulator 0.7.3.1 development code).  These statistics are experimental and may change.
 +
 
 +
{| border="1"
 +
| ODETotalFrameMS        || ODE physics processing.  This should match PhysicsFrameTimeMonitor.
 +
|-
 +
| ODEAvatarTaintFrameMS  || Avatar taint processing.
 +
|-
 +
| ODEPrimTaintFrameMS    || Prim taint processing.
 +
|-
 +
| ODEAvatarForcesFrameMS  || Avatar forces calculations.
 +
|-
 +
| ODEPrimForcesFrameMS    || Prim forces calculations.
 +
|-
 +
| ODERaycastingFrameMS    || Raycasting.
 +
|-
 +
| ODENativeStepFrameMS    || Time taken to perform a physics step by ODE native code.
 +
|-
 +
| ODENativeSpaceCollisionFrameMS || Calculation of possible collisions via spaces in ODE native code.
 +
|-
 +
| ODENativeGeomCollisionFrameMS  || Resolution of actual collisions between geometries in ODE native code.
 +
|-
 +
| ODEOtherCollisionFrameMS      || Processing of collisions not covered by the other 'Native' measures.  This mainly covers operations done in the OpenSimulator's plugin itself, though some calls to native ODE functions are still made.
 +
|-
 +
| ODECollisionNotificationFrameMS || Notification of other parts of OpenSimulator of collisions that is performed outside of the ODE plugin.
 +
|-
 +
| ODEAvatarUpdateFrameMS          || Time taken to process avatar updates from the physics code.
 +
|-
 +
| ODEPrimUpdateFrameMS            || Time taken to process prim updates from the physics code.
 +
|-
 +
| ODEAvatarContacts              || Number of avatar caused collision contacts in the last 3 second period.  There can be more than one contact per collision.
 +
|-
 +
| ODEPrimContacts                || Number of prim caused collision contacts in the last 3 second period.  There can be more than one contact per collision.
 +
|-
 +
| ODETotalAvatars                || Number of avatars modelled by physics.  This should match AgentCountMonitor.
 +
|-
 +
| ODETotalPrims                  || Number of non-phantom prims.  This covers both physics prims and prims which are not subject to physics but are still collidable.  It does not cover phantom prims as these have no representation in the physics scene.
 +
|-
 +
| ODEActivePrims                  || Number of prims subject to physics.  This should match ActiveObjectCountMonitor.
 +
|}
 +
 
 +
== Examples ==
 +
=== OpenSimulator 0.7.2 and earlier ===
 
On OpenSimulator 0.7.2 and earlier, fetching
 
On OpenSimulator 0.7.2 and earlier, fetching
  
<pre>http://192.168.1.2:9000/F27ED466A0D311F8A7B1F309F942437F3302D455</pre>
+
<pre>http://192.168.1.2:9000/dd5b77f8-bf88-45ac-aace-35bd76426c81</pre>
  
 
will return something like
 
will return something like
Line 73: Line 195:
 
</pre>
 
</pre>
  
== OpenSimulator development code ==
+
=== OpenSimulator 0.7.3 and later ===
 
In current development code, more statistics have been added, so instead you'll see something like
 
In current development code, more statistics have been added, so instead you'll see something like
  

Latest revision as of 13:25, 21 June 2016

Contents

[edit] Introduction

This facility provides a way to retrieve data per region.

NOTE: This feature is deprecated and may be removed in future versions of the simulator. Refer to Monitoring for information on the current monitoring interfaces.

[edit] 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

[edit] Retrieving data

[edit] 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.

[edit] 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).

[edit] Retrieved data

[edit] 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.
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.

[edit] Physics

All per frame times here relate to an average taken over the last 3 second period.

The following stats are always present.

PhysicsFPSMonitor Frames per second processed by physics code.
PhysicsFrameMonitor Obsolete. Same as PhysicsFrameTimeMonitor
PhysicsFrameTimeMonitor Average time taken by physics processing.

The following stats are only present if collect_stats = true in the [ODEPhysicsSettings] section of OpenSim.ini as of git master 6375db1 (post OpenSimulator 0.7.3.1 development code). These statistics are experimental and may change.

ODETotalFrameMS ODE physics processing. This should match PhysicsFrameTimeMonitor.
ODEAvatarTaintFrameMS Avatar taint processing.
ODEPrimTaintFrameMS Prim taint processing.
ODEAvatarForcesFrameMS Avatar forces calculations.
ODEPrimForcesFrameMS Prim forces calculations.
ODERaycastingFrameMS Raycasting.
ODENativeStepFrameMS Time taken to perform a physics step by ODE native code.
ODENativeSpaceCollisionFrameMS Calculation of possible collisions via spaces in ODE native code.
ODENativeGeomCollisionFrameMS Resolution of actual collisions between geometries in ODE native code.
ODEOtherCollisionFrameMS Processing of collisions not covered by the other 'Native' measures. This mainly covers operations done in the OpenSimulator's plugin itself, though some calls to native ODE functions are still made.
ODECollisionNotificationFrameMS Notification of other parts of OpenSimulator of collisions that is performed outside of the ODE plugin.
ODEAvatarUpdateFrameMS Time taken to process avatar updates from the physics code.
ODEPrimUpdateFrameMS Time taken to process prim updates from the physics code.
ODEAvatarContacts Number of avatar caused collision contacts in the last 3 second period. There can be more than one contact per collision.
ODEPrimContacts Number of prim caused collision contacts in the last 3 second period. There can be more than one contact per collision.
ODETotalAvatars Number of avatars modelled by physics. This should match AgentCountMonitor.
ODETotalPrims Number of non-phantom prims. This covers both physics prims and prims which are not subject to physics but are still collidable. It does not cover phantom prims as these have no representation in the physics scene.
ODEActivePrims Number of prims subject to physics. This should match ActiveObjectCountMonitor.

[edit] Examples

[edit] 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>

[edit] 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>
Personal tools
General
About This Wiki