Monitoring
From OpenSimulator
Contents |
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.
Internal monitoring
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.
show stats
A new statistics gathering mechanism is slowly being added to OpenSimulator to integrate previously separate and ad-hoc mechanisms. For this system, you can see a short statistics summary with the command "show stats" and a much longer list of statistics with the "show stats all" command (which unfortunately doesn't yet include those in the summary!).
Use the "help show stats" command on the console for more information.
debug stats record
This is an experimental facilty starting in OpenSimulator 0.7.6 which will record the results of "show stats all" to a log file every 5 seconds. The aim is to record statistical information throughout a session for later analysis. The logging is enabled with the console command
# debug stats record start Now recording all stats to file every 5000ms
To stop logging, either shutdown the simulator or use the command
# debug stats record stop Stopped recording stats to file.
The log file used has the same name as the main logfile for the executable with the word "Stats" appended. For instance, turning on stats logging for OpenSim.exe will write to the file OpenSimStats.log. For Robust.exe, this will write to RobustStats.log.
The performance impact of such logging should be low, though the log file size can grow quite large.
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.
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.
External monitoring
These are mechanisms which allow you to extract data about a simulator using external calls.
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.
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.
In OpenSimulator 0.7.2 this is always active. Data is provided in XML format. This is the recommended monitoring 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 (as mentioned above) which is not extractable via external calls. See Web Statistics Module for more details.
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.
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