diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SimStatsReporter.cs | 110 |
1 files changed, 87 insertions, 23 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs index 1b2ff9a..36c2868 100644 --- a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs +++ b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs | |||
@@ -45,6 +45,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
45 | SimFPS = 1, | 45 | SimFPS = 1, |
46 | PhysicsFPS = 2, | 46 | PhysicsFPS = 2, |
47 | AgentUpdates = 3, | 47 | AgentUpdates = 3, |
48 | FrameMS = 4, | ||
49 | NetMS = 5, | ||
50 | OtherMS = 6, | ||
51 | PhysicsMS = 7, | ||
52 | AgentMS = 8, | ||
53 | ImageMS = 9, | ||
48 | TotalPrim = 11, | 54 | TotalPrim = 11, |
49 | ActivePrim = 12, | 55 | ActivePrim = 12, |
50 | Agents = 13, | 56 | Agents = 13, |
@@ -59,6 +65,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
59 | private int m_fps = 0; | 65 | private int m_fps = 0; |
60 | private float m_pfps = 0; | 66 | private float m_pfps = 0; |
61 | private float m_agentUpdates = 0; | 67 | private float m_agentUpdates = 0; |
68 | private int m_frameMS = 0; | ||
69 | private int m_netMS = 0; | ||
70 | private int m_physicsMS = 0; | ||
71 | private int m_imageMS = 0; | ||
72 | private int m_otherMS = 0; | ||
62 | private int m_rootAgents = 0; | 73 | private int m_rootAgents = 0; |
63 | private int m_childAgents = 0; | 74 | private int m_childAgents = 0; |
64 | private int m_numPrim = 0; | 75 | private int m_numPrim = 0; |
@@ -66,6 +77,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
66 | private int m_outPacketsPerSecond = 0; | 77 | private int m_outPacketsPerSecond = 0; |
67 | private int m_activePrim = 0; | 78 | private int m_activePrim = 0; |
68 | private int m_unAckedBytes = 0; | 79 | private int m_unAckedBytes = 0; |
80 | |||
81 | SimStatsPacket.StatBlock[] sb = new SimStatsPacket.StatBlock[16]; | ||
82 | SimStatsPacket.RegionBlock rb = new SimStatsPacket.RegionBlock(); | ||
83 | SimStatsPacket statpack = (SimStatsPacket)PacketPool.Instance.GetPacket(PacketType.SimStats); | ||
84 | |||
85 | |||
69 | private RegionInfo ReportingRegion; | 86 | private RegionInfo ReportingRegion; |
70 | 87 | ||
71 | private Timer m_report = new Timer(); | 88 | private Timer m_report = new Timer(); |
@@ -74,6 +91,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
74 | public SimStatsReporter(RegionInfo regionData) | 91 | public SimStatsReporter(RegionInfo regionData) |
75 | { | 92 | { |
76 | ReportingRegion = regionData; | 93 | ReportingRegion = regionData; |
94 | for (int i = 0; i<16;i++) | ||
95 | { | ||
96 | sb[i] = new SimStatsPacket.StatBlock(); | ||
97 | } | ||
77 | m_report.AutoReset = true; | 98 | m_report.AutoReset = true; |
78 | m_report.Interval = statsUpdatesEveryMS; | 99 | m_report.Interval = statsUpdatesEveryMS; |
79 | m_report.Elapsed += new ElapsedEventHandler(statsHeartBeat); | 100 | m_report.Elapsed += new ElapsedEventHandler(statsHeartBeat); |
@@ -83,11 +104,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
83 | private void statsHeartBeat(object sender, EventArgs e) | 104 | private void statsHeartBeat(object sender, EventArgs e) |
84 | { | 105 | { |
85 | m_report.Enabled = false; | 106 | m_report.Enabled = false; |
86 | SimStatsPacket statpack = (SimStatsPacket) PacketPool.Instance.GetPacket(PacketType.SimStats); | 107 | |
87 | // TODO: don't create new blocks if recycling an old packet | 108 | // Packet is already initialized and ready for data insert |
88 | 109 | ||
89 | SimStatsPacket.StatBlock[] sb = new SimStatsPacket.StatBlock[11]; | 110 | |
90 | statpack.Region = new SimStatsPacket.RegionBlock(); | 111 | statpack.Region = rb; |
91 | statpack.Region.RegionX = ReportingRegion.RegionLocX; | 112 | statpack.Region.RegionX = ReportingRegion.RegionLocX; |
92 | statpack.Region.RegionY = ReportingRegion.RegionLocY; | 113 | statpack.Region.RegionY = ReportingRegion.RegionLocY; |
93 | try | 114 | try |
@@ -119,49 +140,64 @@ namespace OpenSim.Region.Environment.Scenes | |||
119 | 140 | ||
120 | #endregion | 141 | #endregion |
121 | 142 | ||
122 | sb[0] = new SimStatsPacket.StatBlock(); | 143 | //sb[0] = sbb; |
123 | sb[0].StatID = (uint) Stats.TimeDilation; | 144 | sb[0].StatID = (uint) Stats.TimeDilation; |
124 | sb[0].StatValue = (m_timeDilation); | 145 | sb[0].StatValue = (m_timeDilation); |
125 | 146 | ||
126 | sb[1] = new SimStatsPacket.StatBlock(); | 147 | //sb[1] = sbb; |
127 | sb[1].StatID = (uint) Stats.SimFPS; | 148 | sb[1].StatID = (uint) Stats.SimFPS; |
128 | sb[1].StatValue = simfps; | 149 | sb[1].StatValue = simfps; |
129 | 150 | ||
130 | sb[2] = new SimStatsPacket.StatBlock(); | 151 | //sb[2] = sbb; |
131 | sb[2].StatID = (uint) Stats.PhysicsFPS; | 152 | sb[2].StatID = (uint) Stats.PhysicsFPS; |
132 | sb[2].StatValue = physfps; | 153 | sb[2].StatValue = physfps; |
133 | 154 | ||
134 | sb[3] = new SimStatsPacket.StatBlock(); | 155 | //sb[3] = sbb; |
135 | sb[3].StatID = (uint) Stats.AgentUpdates; | 156 | sb[3].StatID = (uint) Stats.AgentUpdates; |
136 | sb[3].StatValue = (m_agentUpdates/statsUpdatesEveryMS); | 157 | sb[3].StatValue = (m_agentUpdates); |
137 | 158 | ||
138 | sb[4] = new SimStatsPacket.StatBlock(); | 159 | //sb[4] = sbb; |
139 | sb[4].StatID = (uint) Stats.Agents; | 160 | //sb[4].StatID = (uint) Stats.Agents; |
140 | sb[4].StatValue = m_rootAgents; | 161 | sb[4].StatValue = m_rootAgents; |
141 | 162 | ||
142 | sb[5] = new SimStatsPacket.StatBlock(); | 163 | //sb[5] = sbb; |
143 | sb[5].StatID = (uint) Stats.ChildAgents; | 164 | sb[5].StatID = (uint) Stats.ChildAgents; |
144 | sb[5].StatValue = m_childAgents; | 165 | sb[5].StatValue = m_childAgents; |
145 | 166 | ||
146 | sb[6] = new SimStatsPacket.StatBlock(); | 167 | //sb[6] = sbb; |
147 | sb[6].StatID = (uint) Stats.TotalPrim; | 168 | sb[6].StatID = (uint) Stats.TotalPrim; |
148 | sb[6].StatValue = m_numPrim; | 169 | sb[6].StatValue = m_numPrim; |
149 | 170 | ||
150 | sb[7] = new SimStatsPacket.StatBlock(); | 171 | //sb[7] = sbb; |
151 | sb[7].StatID = (uint) Stats.ActivePrim; | 172 | sb[7].StatID = (uint) Stats.ActivePrim; |
152 | sb[7].StatValue = m_activePrim; | 173 | sb[7].StatValue = m_activePrim; |
153 | 174 | ||
154 | sb[8] = new SimStatsPacket.StatBlock(); | 175 | sb[8].StatID = (uint)Stats.FrameMS; |
155 | sb[8].StatID = (uint) Stats.InPacketsPerSecond; | 176 | sb[8].StatValue = m_frameMS; |
156 | sb[8].StatValue = (int) (m_inPacketsPerSecond/statsUpdatesEveryMS); | 177 | |
178 | sb[9].StatID = (uint)Stats.NetMS; | ||
179 | sb[9].StatValue = m_netMS; | ||
180 | |||
181 | sb[10].StatID = (uint)Stats.PhysicsMS; | ||
182 | sb[10].StatValue = m_physicsMS; | ||
157 | 183 | ||
158 | sb[9] = new SimStatsPacket.StatBlock(); | 184 | sb[11].StatID = (uint)Stats.ImageMS ; |
159 | sb[9].StatID = (uint) Stats.OutPacketsPerSecond; | 185 | sb[11].StatValue = m_imageMS; |
160 | sb[9].StatValue = (int) (m_outPacketsPerSecond/statsUpdatesEveryMS); | ||
161 | 186 | ||
162 | sb[10] = new SimStatsPacket.StatBlock(); | 187 | sb[12].StatID = (uint)Stats.OtherMS; |
163 | sb[10].StatID = (uint) Stats.UnAckedBytes; | 188 | sb[12].StatValue = m_otherMS; |
164 | sb[10].StatValue = (int) (m_unAckedBytes/statsUpdatesEveryMS); | 189 | |
190 | //sb[8] = sbb; | ||
191 | sb[13].StatID = (uint) Stats.InPacketsPerSecond; | ||
192 | sb[13].StatValue = (m_inPacketsPerSecond); | ||
193 | |||
194 | //sb[9] = sbb; | ||
195 | sb[14].StatID = (uint) Stats.OutPacketsPerSecond; | ||
196 | sb[14].StatValue = (m_outPacketsPerSecond); | ||
197 | |||
198 | //sb[10] = sbb; | ||
199 | sb[15].StatID = (uint) Stats.UnAckedBytes; | ||
200 | sb[15].StatValue = m_unAckedBytes; | ||
165 | 201 | ||
166 | statpack.Stat = sb; | 202 | statpack.Stat = sb; |
167 | 203 | ||
@@ -181,8 +217,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
181 | m_inPacketsPerSecond = 0; | 217 | m_inPacketsPerSecond = 0; |
182 | m_outPacketsPerSecond = 0; | 218 | m_outPacketsPerSecond = 0; |
183 | m_unAckedBytes = 0; | 219 | m_unAckedBytes = 0; |
220 | m_frameMS = 0; | ||
221 | m_netMS = 0; | ||
222 | m_physicsMS = 0; | ||
223 | m_imageMS = 0; | ||
224 | m_otherMS = 0; | ||
184 | } | 225 | } |
185 | 226 | ||
227 | |||
228 | |||
186 | public void SetTimeDilation(float td) | 229 | public void SetTimeDilation(float td) |
187 | { | 230 | { |
188 | m_timeDilation = td; | 231 | m_timeDilation = td; |
@@ -242,5 +285,26 @@ namespace OpenSim.Region.Environment.Scenes | |||
242 | { | 285 | { |
243 | m_unAckedBytes += numBytes; | 286 | m_unAckedBytes += numBytes; |
244 | } | 287 | } |
288 | |||
289 | public void addFrameMS(int ms) | ||
290 | { | ||
291 | m_frameMS += ms; | ||
292 | } | ||
293 | public void addNetMS(int ms) | ||
294 | { | ||
295 | m_netMS += ms; | ||
296 | } | ||
297 | public void addPhysicsMS(int ms) | ||
298 | { | ||
299 | m_physicsMS += ms; | ||
300 | } | ||
301 | public void addImageMS(int ms) | ||
302 | { | ||
303 | m_imageMS += ms; | ||
304 | } | ||
305 | public void addOtherMS(int ms) | ||
306 | { | ||
307 | m_otherMS += ms; | ||
308 | } | ||
245 | } | 309 | } |
246 | } | 310 | } |