diff options
author | Robert Adams | 2013-08-06 08:21:16 -0700 |
---|---|---|
committer | Robert Adams | 2013-08-08 09:45:01 -0700 |
commit | 50c163ae6ca734610694f4edcc109ff0bdc65ba1 (patch) | |
tree | 10ed643a31a62ac2014e6e1c2022a51af6b53ade /OpenSim/Framework/Monitoring | |
parent | * Added set water height <height> [<x>] [<y>] console command following the s... (diff) | |
download | opensim-SC-50c163ae6ca734610694f4edcc109ff0bdc65ba1.zip opensim-SC-50c163ae6ca734610694f4edcc109ff0bdc65ba1.tar.gz opensim-SC-50c163ae6ca734610694f4edcc109ff0bdc65ba1.tar.bz2 opensim-SC-50c163ae6ca734610694f4edcc109ff0bdc65ba1.tar.xz |
Add a JSON web fetch of the statististics managed by StatsManager.
Disabled by default. Enable by setting
[Startup]ManagedStatsRemoteFetchURI="Something"
and thereafter "http://ServerHTTPPort/Something/" will return all the managed
stats (equivilent to "show stats all" console command).
Accepts queries "cat=", "cont=" and "stat=" to specify statistic category,
container and statistic names. The special name "all" is the default and returns
all values in that group.
Diffstat (limited to 'OpenSim/Framework/Monitoring')
-rw-r--r-- | OpenSim/Framework/Monitoring/StatsManager.cs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/OpenSim/Framework/Monitoring/StatsManager.cs b/OpenSim/Framework/Monitoring/StatsManager.cs index c8e838c..23c6f18 100644 --- a/OpenSim/Framework/Monitoring/StatsManager.cs +++ b/OpenSim/Framework/Monitoring/StatsManager.cs | |||
@@ -26,10 +26,12 @@ | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections; | ||
29 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
30 | using System.Linq; | 31 | using System.Linq; |
31 | using System.Text; | 32 | using System.Text; |
32 | 33 | ||
34 | using OpenSim.Framework; | ||
33 | using OpenMetaverse.StructuredData; | 35 | using OpenMetaverse.StructuredData; |
34 | 36 | ||
35 | namespace OpenSim.Framework.Monitoring | 37 | namespace OpenSim.Framework.Monitoring |
@@ -262,6 +264,35 @@ namespace OpenSim.Framework.Monitoring | |||
262 | return map; | 264 | return map; |
263 | } | 265 | } |
264 | 266 | ||
267 | public static Hashtable HandleStatsRequest(Hashtable request) | ||
268 | { | ||
269 | Hashtable responsedata = new Hashtable(); | ||
270 | string regpath = request["uri"].ToString(); | ||
271 | int response_code = 200; | ||
272 | string contenttype = "text/json"; | ||
273 | |||
274 | string pCategoryName = StatsManager.AllSubCommand; | ||
275 | string pContainerName = StatsManager.AllSubCommand; | ||
276 | string pStatName = StatsManager.AllSubCommand; | ||
277 | |||
278 | if (request.ContainsKey("cat")) pCategoryName = request["cat"].ToString(); | ||
279 | if (request.ContainsKey("cont")) pContainerName = request["cat"].ToString(); | ||
280 | if (request.ContainsKey("stat")) pStatName = request["cat"].ToString(); | ||
281 | |||
282 | string strOut = StatsManager.GetStatsAsOSDMap(pCategoryName, pContainerName, pStatName).ToString(); | ||
283 | |||
284 | // m_log.DebugFormat("{0} StatFetch: uri={1}, cat={2}, cont={3}, stat={4}, resp={5}", | ||
285 | // LogHeader, regpath, pCategoryName, pContainerName, pStatName, strOut); | ||
286 | |||
287 | responsedata["int_response_code"] = response_code; | ||
288 | responsedata["content_type"] = contenttype; | ||
289 | responsedata["keepalive"] = false; | ||
290 | responsedata["str_response_string"] = strOut; | ||
291 | responsedata["access_control_allow_origin"] = "*"; | ||
292 | |||
293 | return responsedata; | ||
294 | } | ||
295 | |||
265 | // /// <summary> | 296 | // /// <summary> |
266 | // /// Start collecting statistics related to assets. | 297 | // /// Start collecting statistics related to assets. |
267 | // /// Should only be called once. | 298 | // /// Should only be called once. |