aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs')
-rw-r--r--OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs25
1 files changed, 24 insertions, 1 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs b/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs
index d4a7692..769af8d 100644
--- a/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs
@@ -2,6 +2,7 @@
2using System.Reflection; 2using System.Reflection;
3using log4net; 3using log4net;
4using Nini.Config; 4using Nini.Config;
5using OpenSim.Region.CoreModules.Framework.Monitoring.Alerts;
5using OpenSim.Region.CoreModules.Framework.Monitoring.Monitors; 6using OpenSim.Region.CoreModules.Framework.Monitoring.Monitors;
6using OpenSim.Region.Framework.Interfaces; 7using OpenSim.Region.Framework.Interfaces;
7using OpenSim.Region.Framework.Scenes; 8using OpenSim.Region.Framework.Scenes;
@@ -12,13 +13,22 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring
12 { 13 {
13 private Scene m_scene; 14 private Scene m_scene;
14 private readonly List<IMonitor> m_monitors = new List<IMonitor>(); 15 private readonly List<IMonitor> m_monitors = new List<IMonitor>();
16 private readonly List<IAlert> m_alerts = new List<IAlert>();
15 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 17 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
16 18
17 public void DebugMonitors(string module, string[] args) 19 public void DebugMonitors(string module, string[] args)
18 { 20 {
19 foreach (IMonitor monitor in m_monitors) 21 foreach (IMonitor monitor in m_monitors)
20 { 22 {
21 m_log.Info("[MonitorModule] " + m_scene.RegionInfo.RegionName + " reports " + monitor.GetName() + " = " + monitor.GetValue()); 23 m_log.Info("[MonitorModule] " + m_scene.RegionInfo.RegionName + " reports " + monitor.GetName() + " = " + monitor.GetFriendlyValue());
24 }
25 }
26
27 public void TestAlerts()
28 {
29 foreach (IAlert alert in m_alerts)
30 {
31 alert.Test();
22 } 32 }
23 } 33 }
24 34
@@ -48,6 +58,19 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring
48 m_monitors.Add(new TotalFrameMonitor(m_scene)); 58 m_monitors.Add(new TotalFrameMonitor(m_scene));
49 m_monitors.Add(new EventFrameMonitor(m_scene)); 59 m_monitors.Add(new EventFrameMonitor(m_scene));
50 m_monitors.Add(new LandFrameMonitor(m_scene)); 60 m_monitors.Add(new LandFrameMonitor(m_scene));
61 m_monitors.Add(new LastFrameTimeMonitor(m_scene));
62
63 m_alerts.Add(new DeadlockAlert(m_monitors.Find(x => x is LastFrameTimeMonitor) as LastFrameTimeMonitor));
64
65 foreach (IAlert alert in m_alerts)
66 {
67 alert.OnTriggerAlert += OnTriggerAlert;
68 }
69 }
70
71 void OnTriggerAlert(System.Type reporter, string reason, bool fatal)
72 {
73 m_log.Error("[Monitor] " + reporter.Name + " for " + m_scene.RegionInfo.RegionName + " reports " + reason + " (Fatal: " + fatal + ")");
51 } 74 }
52 75
53 public void Close() 76 public void Close()