[Opensim-users] Region status reporting/monitoring with json

BlueWall Slade bluewall.slade at gmail.com
Wed May 13 09:23:39 UTC 2009


URL Correction : http://ascent.bluewallgroup.com/jtest.html



On Wed, May 13, 2009 at 4:33 AM, BlueWall Slade <bluewall.slade at gmail.com>wrote:

> As of OpenSim svn 9529 the xtended stats reporting will return a jsonp
> callback to allow popular javascript toolkits to use the returned data to
> create ajax monitoring applications in the browser. This is an advantage
> because after the page is loaded, the browser will interact directly with
> the region, eliminating traffic through the website (polling the region and
> servicing the browser). It also allows the creation of mashups to create
> mini-monitor apps in other pages.
>
> To enable your stats reporting, set the following in your OpenSim.ini...
>
>     ; Simulator Stats URI
>     ; Enable JSON simulator data by setting a URI name (case sensitive)
>     Stats_URI = "jsonSimStats"
>
> ...the URI can be anything you want, and is case sensitive. You can query
> the URI directly to return a json string to use in php, python, java, etc.
> or you may use one of the popular javascript toolkits to have OpenSim
> generate a callback for jsonp. The json serialization carries the following
> data...
>
> {"AssetsInCache":5.0,"TimeAfterCacheMiss":0.0,"BlockedMissingTextureRequests":0.0,"AssetServiceRequestFailures":0.0,"abnormalClientThreadTerminations":0.0,
>    "InventoryServiceRetrievalFailures":0.0,"Dilatn":0.967380821704865,"SimFPS":55.0,"PhyFPS":47.1628913879395,"AgntUp":0.0,"RootAg":0.0,
>
>    "ChldAg":0.0,"Prims":0.0,"AtvPrm":0.0,"AtvScr":0.0,"ScrLPS":0.0,"PktsIn":0.0,"PktOut":0.0,"PendDl":0.0,"PendUl":0.0,"UnackB":0.0,"TotlFt":0.0,
>
>    "NetFt":0.0,"PhysFt":0.0,"OthrFt":0.0,"AgntFt":0.0,"ImgsFt":0.0,"Memory":"8","Uptime":"05:12:19.0365590",
>    "Version":"OpenSimulator Server  0.6.4.9533 "}
>
>
>
> Here is an example I have running, and will leave up for a while (
> http://ascent.bluewalgroup.com/jtest.html ) . You can use it as a starting
> place to create monitors for your regions.
>
>
> <html>
> <head>
>     <title>JSON Test</title>
> <script src="http://ascent.bluewallgroup.com/jquery-1.3.2.js"></script>
> <script src="http://ascent.bluewallgroup.com/timer.js"></script>
> <script type="text/javascript" src="http://www.google.com/jsapi"></script>
> <script type="text/javascript" language="JavaScript">
>   SimFPS = 0;
>   PhyFPS = 0;
>   Memory = 0;
>   RootAg = 0;
>   ChldAg = 0;
>   Uptime = "";
>   Version = "";
> </script>
>
>
> <script type="text/javascript" language="JavaScript">
>
>
>   $.timer(15000, function(timer) {
>   $.getJSON("http://ascent.bluewallgroup.com:9300/jsonSimStats/?callback=?",
>
>   function(data){
>
>       SimFPS = Math.round(data.SimFPS);
>       PhyFPS = Math.round(data.PhyFPS);
>       Memory = Math.round(data.Memory);
>       ChldAg = data.ChldAg;
>       RootAg = data.RootAg;
>       Uptime = data.Uptime;
>       Version = data.Version;
>       drawChart();
>       setTags();
>       timer.reset(15000);
>   });
>   });
> </script>
>
> <script type="text/javascript" language="JavaScript">
>
>   google.load("visualization", "1", {packages:["gauge"]});
>   google.setOnLoadCallback(drawChart);
>   function drawChart() {
>     var cdata = new google.visualization.DataTable();
>     cdata.addColumn('string', 'Label');
>     cdata.addColumn('number', 'Value');
>     cdata.addRows(3);
>     cdata.setValue(0, 0, 'SimFPS');
>     cdata.setValue(0, 1, SimFPS);
>     cdata.setValue(1, 0, 'PhyFPS');
>     cdata.setValue(1, 1, PhyFPS);
>     cdata.setValue(2, 0, 'Memory');
>     cdata.setValue(2, 1, Memory);
>
>     var chart = new
> google.visualization.Gauge(document.getElementById('chart_div'));
>     var options = {width: 400, height: 120, redFrom: 90, redTo: 100,
>         yellowFrom:75, yellowTo: 90, minorTicks: 5};
>     chart.draw(cdata, options);
>   }
> </script>
>
> <script type="text/javascript" language="JavaScript">
>    function setTags() {
>       $("#par-uptime").text("Uptime: "  + Uptime);
>       $("#par-ragent").text("Root Agent: " + RootAg);
>       $("#par-version").text("Version: " + Version);
>       $("#par-cagent").text("Child Agent: " + ChldAg);
>    }
> </script>
>
> </head>
> <body>
> <h1>BlueWall Development Region</h1>
> <table>
> <tr><td>
> <div id="par-version">version</div>
> </td><td>
> <div id="par-ragent">root agent</div>
> </td></tr><tr><td>
> <div id="par-uptime">uptime</div>
> </td><td>
> <div id="par-cagent">child agent</div>
> </td></tr>
> </table>
> <div id="chart_div"></div>
> </body>
> </html>
>
>
>
> Have Fun!
> BlueWall
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-users/attachments/20090513/3536ace0/attachment.html>


More information about the Opensim-users mailing list