Add JSONification of WebStats module. Adds a '?json' query parameter

to the fetch URL to return the data in JSON format. Also adds a simple
'sim.html' that uses JavaScript to display the JSON data. Not pretty
but an example.
This commit is contained in:
Robert Adams
2013-01-24 10:44:57 -08:00
parent d5b950633d
commit 427ab219b8
13 changed files with 660 additions and 14 deletions

View File

@@ -32,6 +32,7 @@ using System.Reflection;
using System.Text;
using Mono.Data.SqliteClient;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Framework.Monitoring;
@@ -230,6 +231,31 @@ TD.align_top { vertical-align: top; }
return returnstruct;
}
/// <summary>
/// Return summar information in the form:
/// <pre>
/// {"totalUsers": "34",
/// "totalSessions": "233",
/// ...
/// }
/// </pre>
/// </summary>
/// <param name="pModelResult"></param>
/// <returns></returns>
public string RenderJson(Hashtable pModelResult) {
stats_default_page_values values = (stats_default_page_values) pModelResult["hdata"];
OSDMap summaryInfo = new OSDMap();
summaryInfo.Add("totalUsers", new OSDString(values.total_num_users.ToString()));
summaryInfo.Add("totalSessions", new OSDString(values.total_num_sessions.ToString()));
summaryInfo.Add("averageClientFPS", new OSDString(values.avg_client_fps.ToString()));
summaryInfo.Add("averageClientMem", new OSDString(values.avg_client_mem_use.ToString()));
summaryInfo.Add("averageSimFPS", new OSDString(values.avg_sim_fps.ToString()));
summaryInfo.Add("averagePingTime", new OSDString(values.avg_ping.ToString()));
summaryInfo.Add("totalKBOut", new OSDString(values.total_kb_out.ToString()));
summaryInfo.Add("totalKBIn", new OSDString(values.total_kb_in.ToString()));
return summaryInfo.ToString();
}
}
public struct stats_default_page_values
@@ -247,4 +273,5 @@ TD.align_top { vertical-align: top; }
public Dictionary<UUID, USimStatsData> sim_stat_data;
public Dictionary<string, IStatsController> stats_reports;
}
}