From 62aad4c18f1ebc0780ce47cf179f3d5550ff0837 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 10 Oct 2011 23:48:53 +0100 Subject: Add other region stats (total frame time, physics fps, etc.) currently missing from MonitorModule Unlike the other 3 stats mechanisms, monitor data can be queried per individual region, which makes this useful. This doesn't affect an of the existing monitored stats. --- .../Framework/Monitoring/MonitorModule.cs | 154 ++++++++++++++++++++- 1 file changed, 148 insertions(+), 6 deletions(-) (limited to 'OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs') diff --git a/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs b/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs index 057ed6f..a9dc1fe 100644 --- a/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs +++ b/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs @@ -82,7 +82,7 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring { foreach (IMonitor monitor in m_monitors) { - m_log.Info("[MonitorModule]: " + m_scene.RegionInfo.RegionName + " reports " + monitor.GetName() + " = " + monitor.GetFriendlyValue()); + m_log.Info("[MonitorModule]: " + m_scene.RegionInfo.RegionName + " reports " + monitor.GetFriendlyName() + " = " + monitor.GetFriendlyValue()); } } @@ -132,11 +132,9 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring string xml = ""; foreach (IMonitor monitor in m_monitors) { - string elemName = monitor.ToString(); - if (elemName.StartsWith(monitor.GetType().Namespace)) - elemName = elemName.Substring(monitor.GetType().Namespace.Length + 1); - - xml += "<" + elemName + ">" + monitor.GetValue() + ""; + string elemName = monitor.GetName(); + xml += "<" + elemName + ">" + monitor.GetValue().ToString() + ""; +// m_log.DebugFormat("[MONITOR MODULE]: {0} = {1}", elemName, monitor.GetValue()); } xml += ""; @@ -166,6 +164,150 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring m_monitors.Add(new EventFrameMonitor(m_scene)); m_monitors.Add(new LandFrameMonitor(m_scene)); m_monitors.Add(new LastFrameTimeMonitor(m_scene)); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "TimeDilationMonitor", + "Time Dilation", + m => m.Scene.StatsReporter.LastReportedSimStats[0], + m => m.GetValue().ToString())); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "SimFPSMonitor", + "Sim FPS", + m => m.Scene.StatsReporter.LastReportedSimStats[1], + m => string.Format("{0}", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "PhysicsFPSMonitor", + "Physics FPS", + m => m.Scene.StatsReporter.LastReportedSimStats[2], + m => string.Format("{0}", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "AgentUpdatesPerSecondMonitor", + "Agent Updates", + m => m.Scene.StatsReporter.LastReportedSimStats[3], + m => string.Format("{0} per second", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "ActiveObjectCountMonitor", + "Active Objects", + m => m.Scene.StatsReporter.LastReportedSimStats[7], + m => string.Format("{0}", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "ActiveScriptsMonitor", + "Active Scripts", + m => m.Scene.StatsReporter.LastReportedSimStats[19], + m => string.Format("{0}", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "ScriptEventsPerSecondMonitor", + "Script Events", + m => m.Scene.StatsReporter.LastReportedSimStats[20], + m => string.Format("{0} per second", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "InPacketsPerSecondMonitor", + "In Packets", + m => m.Scene.StatsReporter.LastReportedSimStats[13], + m => string.Format("{0} per second", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "OutPacketsPerSecondMonitor", + "Out Packets", + m => m.Scene.StatsReporter.LastReportedSimStats[14], + m => string.Format("{0} per second", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "UnackedBytesMonitor", + "Unacked Bytes", + m => m.Scene.StatsReporter.LastReportedSimStats[15], + m => string.Format("{0}", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "PendingDownloadsMonitor", + "Pending Downloads", + m => m.Scene.StatsReporter.LastReportedSimStats[17], + m => string.Format("{0}", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "PendingUploadsMonitor", + "Pending Uploads", + m => m.Scene.StatsReporter.LastReportedSimStats[18], + m => string.Format("{0}", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "TotalFrameTimeMonitor", + "Total Frame Time", + m => m.Scene.StatsReporter.LastReportedSimStats[8], + m => string.Format("{0} ms", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "NetFrameTimeMonitor", + "Net Frame Time", + m => m.Scene.StatsReporter.LastReportedSimStats[9], + m => string.Format("{0} ms", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "PhysicsFrameTimeMonitor", + "Physics Frame Time", + m => m.Scene.StatsReporter.LastReportedSimStats[10], + m => string.Format("{0} ms", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "SimulationFrameTimeMonitor", + "Simulation Frame Time", + m => m.Scene.StatsReporter.LastReportedSimStats[12], + m => string.Format("{0} ms", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "AgentFrameTimeMonitor", + "Agent Frame Time", + m => m.Scene.StatsReporter.LastReportedSimStats[16], + m => string.Format("{0} ms", m.GetValue()))); + + m_monitors.Add( + new GenericMonitor( + m_scene, + "ImagesFrameTimeMonitor", + "Images Frame Time", + m => m.Scene.StatsReporter.LastReportedSimStats[11], + m => string.Format("{0} ms", m.GetValue()))); m_alerts.Add(new DeadlockAlert(m_monitors.Find(x => x is LastFrameTimeMonitor) as LastFrameTimeMonitor)); -- cgit v1.1