Monitoring

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(XSimStatus)
(Add show stats mechanism and make monitoring module deprecated)
 
(22 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
{{Quicklinks}}
 +
 
=Introduction=
 
=Introduction=
  
There are a number of ways of monitoring OpenSimulator. All of these relate to monitoring the simulator itself - there is currently no good way to extract statistics from ROBUST hosted services.
+
There are a number of ways of monitoring OpenSimulator. All of these relate to monitoring the simulator itself - there is currently no good way to extract statistics from ROBUST hosted services.
  
= SimStatus =
+
This is an area under active evolution and there is currently a high degree of inconsistency between monitoring and statistics solutions.  This should improve over time.
  
If a simulator is running, a GET request to
+
See [[Client side monitoring]] for information on stats which can be seen via the viewer.
  
<pre>http://<sim-ip>:<sim-http-port>/simstatus/</pre>
+
= Internal monitoring =
  
will return
+
== Web Statistics Module ==
 +
A typical second life viewer will periodically send various performance metrics to the simulator (cpu usage, memory used by scene objects in the client, etc.).  This can be recorded by OpenSimulator in an SQLite database for further analysis.  This module also provides separate functionality to see some simulator information in web page format, though this functionality should in the future be moved into a separate module.  See [[Web Statistics Module]] for more information.
  
  OK
+
== show stats ==
 +
This is a new statistics gathering mechanism slowly being added to OpenSimulator to integrate previous separate and ad-hoc mechanisms. It also has an experimental facility for recording this statistics to file for later analysis.  See [[show stats]] for more information.
  
in UTF8 if the simulator is running and the port is reachable by the network.
+
== show queues ==
 +
This console command displays data on the UDP packets transferred between the simulator and the viewer.  A high number of resends as a proportion of total sends (say over 15%) for a single user can indicate a bad network connection between a particular viewer and the simulator.  A high number of resends for all viewers could indicate a generally bad connection to the simulator.
  
= XSimStatus =
+
== xengine status ==
 +
This console command displays some information on the XEngine script engine, including the number of events queued for processing, the number of active sensors, etimers, etc.  If the number of events queued is persistently high then this could indicate an overloaded simulator.
  
This old facility provides a way to retrieve some very basic region data and some more detailed information about the simulator as a whole.  It is always active.
+
= External monitoring =
  
Each region will register a URL handler with a random UUID.  There will also be handler that will return data for the simulator as a whole.  These UUIDs will be different on each restart of the simulator (yes this is insane).
+
== Supported mechanisms ==
 +
These are mechanisms which allow you to extract data about a simulator using external calls.  These are reocmmended for use.
  
So a two region simulator will have three handlers, one for each simulator and one for the simulator as a whole.
+
=== SimStatus ===
  
Sending a GET request to a handler will return data in JSON format.
+
If a simulator is running, a GET request to  
  
You can see these handlers using the region console command
+
<pre>http://<sim-ip>:<sim-http-port>/simstatus/</pre>
  
show http-handlers
+
will return
  
In the last section you should see something like
+
OK
  
* StreamHandlers (7):
+
in UTF8 if the simulator is running and the port is reachable by the network.
        POST:/friends
+
        GET:/map
+
        GET:/get_grid_info
+
        GET:/F27ED466A0D311F8A7B1F309F942437F3302D455
+
        GET:/493F5C64F8AF200E63C9A33EA92BD393D9232A61
+
        GET:/simstatus
+
        GET:/1B71AB5959171C2308F429E8F397F0390ADEF94D
+
  
Here, F27ED466A0D311F8A7B1F309F942437F3302D455, 493F5C64F8AF200E63C9A33EA92BD393D9232A61 and 1B71AB5959171C2308F429E8F397F0390ADEF94D are XSimStatus handlers.  Unfortunately, it's not possible to tell which are which except by pointing your browser at them.  Let's suppose you are running a standalone on 192.168.1.2 with an HTTP listener port of 9000.  In this case, going to
+
=== XSimStatus ===
  
<pre>http://192.168.1.2:9000/F27ED466A0D311F8A7B1F309F942437F3302D455</pre>
+
This old facility provides a way to retrieve some very basic region data and some more detailed information about the simulator as a whole. The data is returns is of low quality. It is always active. Data is provided in JSON format.
  
yields
+
See [[XSimStatus]].
  
<pre>
+
=== UXSimStatus ===
{
+
"OSStatsURI":"http://192.168.1.2:9000/1B71AB5959171C2308F429E8F397F0390ADEF94D/",
+
"TimeZoneName":"GMT",
+
"TimeZoneOffs":1.0,
+
"UxTime":1318276065,
+
"Memory":31.0,
+
"Version":"OpenSim 0.7.3 Dev          "
+
}
+
</pre>
+
  
This is data for a particular region.  In the OSStatsURI field it does give the statistics handler for the simulator as a whole.  Sending a get request to http://192.168.1.2:9000/1B71AB5959171C2308F429E8F397F0390ADEF94D/ returns
+
This returns identical data to the main simulator part of XSimStatus but allows you to explicitly set the URL for retrieving monitoring data rather than having to retrieve a handler with a random UUID. Data is provided in JSON format.
  
<pre>
+
See [[UXSimStatus]]
{
+
"AssetsInCache":"0",
+
"TimeAfterCacheMiss":"0",
+
"BlockedMissingTextureRequests":"0",
+
"AssetServiceRequestFailures":"0",
+
"abnormalClientThreadTerminations":"0",
+
"InventoryServiceRetrievalFailures":"0",
+
"Dilatn":"1",
+
"SimFPS":"56.67",
+
"PhyFPS":"46.93",
+
"AgntUp":"0",
+
"RootAg":"0",
+
"ChldAg":"0",
+
"Prims":"1",
+
"AtvPrm":"0",
+
"AtvScr":"1",
+
"ScrLPS":"0",
+
"PktsIn":"0",
+
"PktOut":"0",
+
"PendDl":"0",
+
"PendUl":"0",
+
"UnackB":"0",
+
"TotlFt":"0.67",
+
"NetFt":"0",
+
"PhysFt":"0.33",
+
"OthrFt":"0",
+
"AgntFt":"0.33",
+
"ImgsFt":"0",
+
"Memory":"21",
+
"Uptime":"00:20:49.0991070",
+
"Version":"OpenSim 0.7.3 Dev          013bf27"
+
}
+
</pre>
+
  
Unfortunately, the simulator stats here are only for one regionIn a multi-region simulator which one this is is not defined and will change depending on exactly when the URL is called.  Also, the top 6 statistics (AssetsInCache to InventoryServiceRetrievalFailures) are not currently in use.
+
=== Show Stats ===
 +
The show stats facility has a mechanism for fetching data via external callsPlease see the [[show stats]] page for more details.
  
= Web Statistics Module =
+
=== Web Statistics Module ===
  
The Web Statistics Module is a module in OpenSimulator that can provide human readable HTML pages of monitor stated updated dynamically via AJAX. It also stores some historical data. See [[Web Statistics Module]] for more details.
+
The Web Statistics Module is a module in OpenSimulator that can provide human readable HTML pages of monitor stated updated dynamically via AJAX. It also stores some historical data (as mentioned above) which is not extractable via external calls. See [[Web Statistics Module]] for more details.
  
= MORE TO FOLLOW =
+
== Deprecated mechanisms ==
  
Insanely, there are more ways of extracting stats from OpenSim.  These will be documented one by one.
+
These are mechanisms that are deprecated and will be removed in a future OpenSimulator release.
 +
 
 +
=== Monitoring Module ===
 +
 
 +
The monitoring module allows one to retrieve region statistics via a URL. Unlike [[XSimStatus]] and [[UXSimStatus]] one can retrieve statistics per scene rather than just statistics for the scene which sents its stats data last.
 +
 
 +
All the data available via this module is now available via the [[Show stats]] mechanism.  The current exception is the ODE specific debug data.
 +
 
 +
See [[Monitoring Module]]
  
 
= Other stats facilities =
 
= Other stats facilities =
Line 109: Line 76:
  
 
[[ServerStats]]
 
[[ServerStats]]
 +
 +
[[Cacti]]
 +
 +
[[Collectd]]

Latest revision as of 13:07, 4 February 2015

Contents

[edit] Introduction

There are a number of ways of monitoring OpenSimulator. All of these relate to monitoring the simulator itself - there is currently no good way to extract statistics from ROBUST hosted services.

This is an area under active evolution and there is currently a high degree of inconsistency between monitoring and statistics solutions. This should improve over time.

See Client side monitoring for information on stats which can be seen via the viewer.

[edit] Internal monitoring

[edit] Web Statistics Module

A typical second life viewer will periodically send various performance metrics to the simulator (cpu usage, memory used by scene objects in the client, etc.). This can be recorded by OpenSimulator in an SQLite database for further analysis. This module also provides separate functionality to see some simulator information in web page format, though this functionality should in the future be moved into a separate module. See Web Statistics Module for more information.

[edit] show stats

This is a new statistics gathering mechanism slowly being added to OpenSimulator to integrate previous separate and ad-hoc mechanisms. It also has an experimental facility for recording this statistics to file for later analysis. See show stats for more information.

[edit] show queues

This console command displays data on the UDP packets transferred between the simulator and the viewer. A high number of resends as a proportion of total sends (say over 15%) for a single user can indicate a bad network connection between a particular viewer and the simulator. A high number of resends for all viewers could indicate a generally bad connection to the simulator.

[edit] xengine status

This console command displays some information on the XEngine script engine, including the number of events queued for processing, the number of active sensors, etimers, etc. If the number of events queued is persistently high then this could indicate an overloaded simulator.

[edit] External monitoring

[edit] Supported mechanisms

These are mechanisms which allow you to extract data about a simulator using external calls. These are reocmmended for use.

[edit] SimStatus

If a simulator is running, a GET request to

http://<sim-ip>:<sim-http-port>/simstatus/

will return

OK

in UTF8 if the simulator is running and the port is reachable by the network.

[edit] XSimStatus

This old facility provides a way to retrieve some very basic region data and some more detailed information about the simulator as a whole. The data is returns is of low quality. It is always active. Data is provided in JSON format.

See XSimStatus.

[edit] UXSimStatus

This returns identical data to the main simulator part of XSimStatus but allows you to explicitly set the URL for retrieving monitoring data rather than having to retrieve a handler with a random UUID. Data is provided in JSON format.

See UXSimStatus

[edit] Show Stats

The show stats facility has a mechanism for fetching data via external calls. Please see the show stats page for more details.

[edit] Web Statistics Module

The Web Statistics Module is a module in OpenSimulator that can provide human readable HTML pages of monitor stated updated dynamically via AJAX. It also stores some historical data (as mentioned above) which is not extractable via external calls. See Web Statistics Module for more details.

[edit] Deprecated mechanisms

These are mechanisms that are deprecated and will be removed in a future OpenSimulator release.

[edit] Monitoring Module

The monitoring module allows one to retrieve region statistics via a URL. Unlike XSimStatus and UXSimStatus one can retrieve statistics per scene rather than just statistics for the scene which sents its stats data last.

All the data available via this module is now available via the Show stats mechanism. The current exception is the ODE specific debug data.

See Monitoring Module

[edit] Other stats facilities

OsGetRegionStats

ServerStats

Cacti

Collectd

Personal tools
General
About This Wiki