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.
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.
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. It is always active.
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).
So a two region simulator will have three handlers, one for each simulator and one for the simulator as a whole.
Sending a GET request to a handler will return data in JSON format.
You can see these handlers using the region console command
show http-handlers
In the last section you should see something like
* StreamHandlers (7): 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
http://192.168.1.2:9000/F27ED466A0D311F8A7B1F309F942437F3302D455
yields
{ "OSStatsURI":"http://192.168.1.2:9000/1B71AB5959171C2308F429E8F397F0390ADEF94D/", "TimeZoneName":"GMT", "TimeZoneOffs":1.0, "UxTime":1318276065, "Memory":31.0, "Version":"OpenSim 0.7.3 Dev " }
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
{ "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" }
Unfortunately, the simulator stats here are only for one region. In 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.
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.
MORE TO FOLLOW
Insanely, there are more ways of extracting stats from OpenSim. These will be documented one by one.