Monitoring Module

From OpenSimulator

Jump to: navigation, search

Contents

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.

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.
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.

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.

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>
Personal tools
About This Wiki