From e9cef70f892bfbf4aad0e4471a958367766d849a Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sat, 3 Jan 2009 03:30:03 +0000 Subject: * Updates the sim stats module. Cleans out some of the rot. * Adds a prototype web stats module which is disabled by default. It's functional with one report right now, however, the database structure may change, so I don't recommend enabling this to keep actual stats right now. I'll let you know when it's safe. * Adds Prototype for ajaxy web content * removed a warning or two. --- OpenSim/Region/Environment/Scenes/Scene.cs | 78 +++++++++++----------- OpenSim/Region/Environment/Scenes/SceneGraph.cs | 11 +++ .../Region/Environment/Scenes/SimStatsReporter.cs | 13 +++- 3 files changed, 60 insertions(+), 42 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes') diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 408f100..daeb186 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -69,7 +69,7 @@ namespace OpenSim.Region.Environment.Scenes protected Timer m_restartWaitTimer = new Timer(); - protected SimStatsReporter m_statsReporter; + public SimStatsReporter StatsReporter; protected List m_regionRestartNotifyList = new List(); protected List m_neighbours = new List(); @@ -244,7 +244,7 @@ namespace OpenSim.Region.Environment.Scenes /// public float SimulatorFPS { - get { return m_statsReporter.getLastReportedSimFPS(); } + get { return StatsReporter.getLastReportedSimFPS(); } } public int TimePhase @@ -358,10 +358,10 @@ namespace OpenSim.Region.Environment.Scenes m_physics_enabled = !RegionInfo.RegionSettings.DisablePhysics; - m_statsReporter = new SimStatsReporter(this); - m_statsReporter.OnSendStatsResult += SendSimStatsPackets; + StatsReporter = new SimStatsReporter(this); + StatsReporter.OnSendStatsResult += SendSimStatsPackets; - m_statsReporter.SetObjectCapacity(objectCapacity); + StatsReporter.SetObjectCapacity(objectCapacity); m_simulatorVersion = simulatorVersion + " (OS " + Util.GetOperatingSystemInformation() + ")" @@ -814,7 +814,7 @@ namespace OpenSim.Region.Environment.Scenes if (m_update_entities == 1) { m_update_entities = 5; - m_statsReporter.SetUpdateMS(6000); + StatsReporter.SetUpdateMS(6000); } } else @@ -822,7 +822,7 @@ namespace OpenSim.Region.Environment.Scenes if (m_update_entities == 5) { m_update_entities = 1; - m_statsReporter.SetUpdateMS(3000); + StatsReporter.SetUpdateMS(3000); } } @@ -891,20 +891,20 @@ namespace OpenSim.Region.Environment.Scenes otherMS = System.Environment.TickCount - otherMS; // if (m_frame%m_update_avatars == 0) // UpdateInWorldTime(); - m_statsReporter.AddPhysicsFPS(physicsFPS); - m_statsReporter.AddTimeDilation(m_timedilation); - m_statsReporter.AddFPS(1); - m_statsReporter.AddInPackets(0); - m_statsReporter.SetRootAgents(m_sceneGraph.GetRootAgentCount()); - m_statsReporter.SetChildAgents(m_sceneGraph.GetChildAgentCount()); - m_statsReporter.SetObjects(m_sceneGraph.GetTotalObjectsCount()); - m_statsReporter.SetActiveObjects(m_sceneGraph.GetActiveObjectsCount()); + StatsReporter.AddPhysicsFPS(physicsFPS); + StatsReporter.AddTimeDilation(m_timedilation); + StatsReporter.AddFPS(1); + StatsReporter.AddInPackets(0); + StatsReporter.SetRootAgents(m_sceneGraph.GetRootAgentCount()); + StatsReporter.SetChildAgents(m_sceneGraph.GetChildAgentCount()); + StatsReporter.SetObjects(m_sceneGraph.GetTotalObjectsCount()); + StatsReporter.SetActiveObjects(m_sceneGraph.GetActiveObjectsCount()); frameMS = System.Environment.TickCount - frameMS; - m_statsReporter.addFrameMS(frameMS); - m_statsReporter.addPhysicsMS(physicsMS); - m_statsReporter.addOtherMS(otherMS); - m_statsReporter.SetActiveScripts(m_sceneGraph.GetActiveScriptsCount()); - m_statsReporter.addScriptLines(m_sceneGraph.GetScriptLPS()); + StatsReporter.addFrameMS(frameMS); + StatsReporter.addPhysicsMS(physicsMS); + StatsReporter.addOtherMS(otherMS); + StatsReporter.SetActiveScripts(m_sceneGraph.GetActiveScriptsCount()); + StatsReporter.addScriptLines(m_sceneGraph.GetScriptLPS()); } } catch (NotImplementedException) @@ -2380,8 +2380,8 @@ namespace OpenSim.Region.Environment.Scenes client.OnObjectOwner += ObjectOwner; - if (m_statsReporter != null) - client.OnNetworkStatsUpdate += m_statsReporter.AddPacketsFromClientStats; + if (StatsReporter != null) + client.OnNetworkStatsUpdate += StatsReporter.AddPacketsFromClientStats; // EventManager.TriggerOnNewClient(client); } @@ -3027,14 +3027,14 @@ namespace OpenSim.Region.Environment.Scenes if (presence != null) { // Nothing is removed here, so down count it as such - // if (presence.IsChildAgent) - // { - // m_sceneGraph.removeUserCount(false); - // } - // else - // { - // m_sceneGraph.removeUserCount(true); - // } + if (presence.IsChildAgent) + { + m_sceneGraph.removeUserCount(false); + } + else + { + m_sceneGraph.removeUserCount(true); + } // Don't do this to root agents on logout, it's not nice for the viewer if (presence.IsChildAgent) @@ -3322,9 +3322,9 @@ namespace OpenSim.Region.Environment.Scenes if (RegionInfo.ObjectCapacity != 0) objects = RegionInfo.ObjectCapacity; - if (m_statsReporter != null) + if (StatsReporter != null) { - m_statsReporter.SetObjectCapacity(objects); + StatsReporter.SetObjectCapacity(objects); } objectCapacity = objects; } @@ -3430,25 +3430,25 @@ namespace OpenSim.Region.Environment.Scenes public void AddPacketStats(int inPackets, int outPackets, int unAckedBytes) { - m_statsReporter.AddInPackets(inPackets); - m_statsReporter.AddOutPackets(outPackets); - m_statsReporter.AddunAckedBytes(unAckedBytes); + StatsReporter.AddInPackets(inPackets); + StatsReporter.AddOutPackets(outPackets); + StatsReporter.AddunAckedBytes(unAckedBytes); } public void AddAgentTime(int ms) { - m_statsReporter.addFrameMS(ms); - m_statsReporter.addAgentMS(ms); + StatsReporter.addFrameMS(ms); + StatsReporter.addAgentMS(ms); } public void AddAgentUpdates(int count) { - m_statsReporter.AddAgentUpdates(count); + StatsReporter.AddAgentUpdates(count); } public void AddPendingDownloads(int count) { - m_statsReporter.addPendingDownload(count); + StatsReporter.addPendingDownload(count); } #endregion diff --git a/OpenSim/Region/Environment/Scenes/SceneGraph.cs b/OpenSim/Region/Environment/Scenes/SceneGraph.cs index d998dbb..3ffa5c3 100644 --- a/OpenSim/Region/Environment/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Environment/Scenes/SceneGraph.cs @@ -306,8 +306,19 @@ namespace OpenSim.Region.Environment.Scenes if (!resultOfObjectLinked) { m_numPrim -= ((SceneObjectGroup) Entities[uuid]).Children.Count; + + if ((((SceneObjectGroup)Entities[uuid]).RootPart.Flags & PrimFlags.Physics) == PrimFlags.Physics) + { + RemovePhysicalPrim(((SceneObjectGroup)Entities[uuid]).Children.Count); + } } + + + Entities.Remove(uuid); + //SceneObjectGroup part; + //((part.RootPart.Flags & PrimFlags.Physics) == PrimFlags.Physics) + return true; } diff --git a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs index c614f78..e2afa5a 100644 --- a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs +++ b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs @@ -26,6 +26,7 @@ */ using System; +//using System.Collections.Generic; using System.Timers; using OpenMetaverse.Packets; using OpenSim.Framework; @@ -189,7 +190,7 @@ namespace OpenSim.Region.Environment.Scenes } sb[0].StatID = (uint) Stats.TimeDilation; - sb[0].StatValue = m_timeDilation ; //((((m_timeDilation + (0.10f * statsUpdateFactor)) /10) / statsUpdateFactor)); + sb[0].StatValue = (Single.IsNaN(m_timeDilation)) ? 0.1f : m_timeDilation ; //((((m_timeDilation + (0.10f * statsUpdateFactor)) /10) / statsUpdateFactor)); sb[1].StatID = (uint) Stats.SimFPS; sb[1].StatValue = simfps/statsUpdateFactor; @@ -253,7 +254,7 @@ namespace OpenSim.Region.Environment.Scenes SimStats simStats = new SimStats( - ReportingRegion.RegionLocX, ReportingRegion.RegionLocY, regionFlags, (uint)objectCapacity, rb, sb); + ReportingRegion.RegionLocX, ReportingRegion.RegionLocY, regionFlags, (uint)objectCapacity, rb, sb, m_scene.RegionInfo.originRegionID); handlerSendStatResult = OnSendStatsResult; if (handlerSendStatResult != null) @@ -309,7 +310,11 @@ namespace OpenSim.Region.Environment.Scenes public void SetChildAgents(int childAgents) { - m_childAgents = childAgents; + m_childAgents = (childAgents > 0) ? childAgents : 0; + if (childAgents < 0) + { + //List avs= m_scene.GetScenePresences(); + } } public void SetObjects(int objects) @@ -350,6 +355,7 @@ namespace OpenSim.Region.Environment.Scenes public void AddunAckedBytes(int numBytes) { m_unAckedBytes += numBytes; + if (m_unAckedBytes < 0) m_unAckedBytes = 0; } public void addFrameMS(int ms) @@ -383,6 +389,7 @@ namespace OpenSim.Region.Environment.Scenes public void addPendingDownload(int count) { m_pendingDownloads += count; + if (m_pendingDownloads < 0) m_pendingDownloads = 0; //m_log.InfoFormat("[stats]: Adding {0} to pending downloads to make {1}", count, m_pendingDownloads); } -- cgit v1.1