diff options
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs | 50 | ||||
-rw-r--r-- | bin/OpenSimDefaults.ini | 5 |
2 files changed, 40 insertions, 15 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs b/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs index 09095c2..057ed6f 100644 --- a/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs +++ b/OpenSim/Region/CoreModules/Framework/Monitoring/MonitorModule.cs | |||
@@ -41,31 +41,33 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring | |||
41 | { | 41 | { |
42 | public class MonitorModule : IRegionModule | 42 | public class MonitorModule : IRegionModule |
43 | { | 43 | { |
44 | /// <summary> | ||
45 | /// Is this module enabled? | ||
46 | /// </summary> | ||
47 | public bool Enabled { get; private set; } | ||
48 | |||
44 | private Scene m_scene; | 49 | private Scene m_scene; |
45 | private readonly List<IMonitor> m_monitors = new List<IMonitor>(); | 50 | private readonly List<IMonitor> m_monitors = new List<IMonitor>(); |
46 | private readonly List<IAlert> m_alerts = new List<IAlert>(); | 51 | private readonly List<IAlert> m_alerts = new List<IAlert>(); |
47 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 52 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
48 | 53 | ||
49 | public void DebugMonitors(string module, string[] args) | 54 | #region Implementation of IRegionModule |
50 | { | ||
51 | foreach (IMonitor monitor in m_monitors) | ||
52 | { | ||
53 | m_log.Info("[MonitorModule] " + m_scene.RegionInfo.RegionName + " reports " + monitor.GetName() + " = " + monitor.GetFriendlyValue()); | ||
54 | } | ||
55 | } | ||
56 | 55 | ||
57 | public void TestAlerts() | 56 | public MonitorModule() |
58 | { | 57 | { |
59 | foreach (IAlert alert in m_alerts) | 58 | Enabled = true; |
60 | { | ||
61 | alert.Test(); | ||
62 | } | ||
63 | } | 59 | } |
64 | 60 | ||
65 | #region Implementation of IRegionModule | ||
66 | |||
67 | public void Initialise(Scene scene, IConfigSource source) | 61 | public void Initialise(Scene scene, IConfigSource source) |
68 | { | 62 | { |
63 | IConfig cnfg = source.Configs["Monitoring"]; | ||
64 | |||
65 | if (cnfg != null) | ||
66 | Enabled = cnfg.GetBoolean("Enabled", true); | ||
67 | |||
68 | if (!Enabled) | ||
69 | return; | ||
70 | |||
69 | m_scene = scene; | 71 | m_scene = scene; |
70 | 72 | ||
71 | m_scene.AddCommand(this, "monitor report", | 73 | m_scene.AddCommand(this, "monitor report", |
@@ -76,6 +78,22 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring | |||
76 | MainServer.Instance.AddHTTPHandler("/monitorstats/" + m_scene.RegionInfo.RegionID, StatsPage); | 78 | MainServer.Instance.AddHTTPHandler("/monitorstats/" + m_scene.RegionInfo.RegionID, StatsPage); |
77 | } | 79 | } |
78 | 80 | ||
81 | public void DebugMonitors(string module, string[] args) | ||
82 | { | ||
83 | foreach (IMonitor monitor in m_monitors) | ||
84 | { | ||
85 | m_log.Info("[MonitorModule]: " + m_scene.RegionInfo.RegionName + " reports " + monitor.GetName() + " = " + monitor.GetFriendlyValue()); | ||
86 | } | ||
87 | } | ||
88 | |||
89 | public void TestAlerts() | ||
90 | { | ||
91 | foreach (IAlert alert in m_alerts) | ||
92 | { | ||
93 | alert.Test(); | ||
94 | } | ||
95 | } | ||
96 | |||
79 | public Hashtable StatsPage(Hashtable request) | 97 | public Hashtable StatsPage(Hashtable request) |
80 | { | 98 | { |
81 | // If request was for a specific monitor | 99 | // If request was for a specific monitor |
@@ -133,6 +151,9 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring | |||
133 | 151 | ||
134 | public void PostInitialise() | 152 | public void PostInitialise() |
135 | { | 153 | { |
154 | if (!Enabled) | ||
155 | return; | ||
156 | |||
136 | m_monitors.Add(new AgentCountMonitor(m_scene)); | 157 | m_monitors.Add(new AgentCountMonitor(m_scene)); |
137 | m_monitors.Add(new ChildAgentCountMonitor(m_scene)); | 158 | m_monitors.Add(new ChildAgentCountMonitor(m_scene)); |
138 | m_monitors.Add(new GCMemoryMonitor()); | 159 | m_monitors.Add(new GCMemoryMonitor()); |
@@ -161,7 +182,6 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring | |||
161 | 182 | ||
162 | public void Close() | 183 | public void Close() |
163 | { | 184 | { |
164 | |||
165 | } | 185 | } |
166 | 186 | ||
167 | public string Name | 187 | public string Name |
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini index 8660f4f..9cedd98 100644 --- a/bin/OpenSimDefaults.ini +++ b/bin/OpenSimDefaults.ini | |||
@@ -1417,6 +1417,11 @@ | |||
1417 | RootReprioritizationDistance = 10.0 | 1417 | RootReprioritizationDistance = 10.0 |
1418 | ChildReprioritizationDistance = 20.0 | 1418 | ChildReprioritizationDistance = 20.0 |
1419 | 1419 | ||
1420 | [Monitoring] | ||
1421 | ; Enable region monitoring | ||
1422 | ; If true, this will print out an error if more than a minute has passed since the last simulator frame | ||
1423 | ; Also is another source of region statistics provided via the regionstats URL | ||
1424 | Enabled = true | ||
1420 | 1425 | ||
1421 | ; View region statistics via a web page | 1426 | ; View region statistics via a web page |
1422 | ; See http://opensimulator.org/wiki/FAQ#Region_Statistics_on_a_Web_Page | 1427 | ; See http://opensimulator.org/wiki/FAQ#Region_Statistics_on_a_Web_Page |