From 0f501629618fe1655b7ba653802056b5c32dbae6 Mon Sep 17 00:00:00 2001
From: Justin Clarke Casey
Date: Wed, 14 May 2008 21:53:40 +0000
Subject: * Refactor additional stats collection common code into base opensim
server * If extra stats not sent to the viewer are available on an opensim
server, they are now uniformly accessible using the 'show stats' command
---
.../Framework/Statistics/AssetStatsCollector.cs | 2 +-
.../Statistics/Interfaces/IStatsCollector.cs | 41 ++++++++++++++++++++++
.../Framework/Statistics/SimExtraStatsCollector.cs | 4 +--
OpenSim/Framework/Statistics/StatsManager.cs | 12 +++++--
OpenSim/Framework/Statistics/UserStatsCollector.cs | 2 +-
5 files changed, 54 insertions(+), 7 deletions(-)
create mode 100644 OpenSim/Framework/Statistics/Interfaces/IStatsCollector.cs
(limited to 'OpenSim/Framework/Statistics')
diff --git a/OpenSim/Framework/Statistics/AssetStatsCollector.cs b/OpenSim/Framework/Statistics/AssetStatsCollector.cs
index afc42d2..bd36c3f 100644
--- a/OpenSim/Framework/Statistics/AssetStatsCollector.cs
+++ b/OpenSim/Framework/Statistics/AssetStatsCollector.cs
@@ -33,7 +33,7 @@ namespace OpenSim.Framework.Statistics
///
/// Asset service statistics collection
///
- public class AssetStatsCollector
+ public class AssetStatsCollector : IStatsCollector
{
private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000);
private DateTime startTime = DateTime.Now;
diff --git a/OpenSim/Framework/Statistics/Interfaces/IStatsCollector.cs b/OpenSim/Framework/Statistics/Interfaces/IStatsCollector.cs
new file mode 100644
index 0000000..768cd22
--- /dev/null
+++ b/OpenSim/Framework/Statistics/Interfaces/IStatsCollector.cs
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+namespace OpenSim.Framework.Statistics
+{
+ ///
+ /// Implemented by classes which collect up non-viewer statistical information
+ ///
+ public interface IStatsCollector
+ {
+ ///
+ /// Report back collected statistical information.
+ ///
+ ///
+ string Report();
+ }
+}
diff --git a/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs b/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs
index 4e69d17..2beb3a0 100644
--- a/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs
+++ b/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs
@@ -36,7 +36,7 @@ namespace OpenSim.Framework.Statistics
///
/// Collects sim statistics which aren't already being collected for the linden viewer's statistics pane
///
- public class SimExtraStatsCollector
+ public class SimExtraStatsCollector : IStatsCollector
{
private long assetsInCache;
private long texturesInCache;
@@ -135,7 +135,7 @@ Texture cache contains {2,6} textures using {3,10:0.000}K" + Environment.NewLine
///
/// Pull packet queue stats from packet queues and report
///
- public class PacketQueueStatsCollector
+ public class PacketQueueStatsCollector : IStatsCollector
{
private IPullStatsProvider m_statsProvider;
diff --git a/OpenSim/Framework/Statistics/StatsManager.cs b/OpenSim/Framework/Statistics/StatsManager.cs
index 10251a5..3c97dde 100644
--- a/OpenSim/Framework/Statistics/StatsManager.cs
+++ b/OpenSim/Framework/Statistics/StatsManager.cs
@@ -46,27 +46,33 @@ namespace OpenSim.Framework.Statistics
/// Start collecting statistics related to assets.
/// Should only be called once.
///
- public static void StartCollectingAssetStats()
+ public static AssetStatsCollector StartCollectingAssetStats()
{
assetStats = new AssetStatsCollector();
+
+ return assetStats;
}
///
/// Start collecting statistics related to users.
/// Should only be called once.
///
- public static void StartCollectingUserStats()
+ public static UserStatsCollector StartCollectingUserStats()
{
userStats = new UserStatsCollector();
+
+ return userStats;
}
///
/// Start collecting extra sim statistics apart from those collected for the client.
/// Should only be called once.
///
- public static void StartCollectingSimExtraStats()
+ public static SimExtraStatsCollector StartCollectingSimExtraStats()
{
simExtraStats = new SimExtraStatsCollector();
+
+ return simExtraStats;
}
}
}
diff --git a/OpenSim/Framework/Statistics/UserStatsCollector.cs b/OpenSim/Framework/Statistics/UserStatsCollector.cs
index 80cd46e..f0f0417 100644
--- a/OpenSim/Framework/Statistics/UserStatsCollector.cs
+++ b/OpenSim/Framework/Statistics/UserStatsCollector.cs
@@ -32,7 +32,7 @@ namespace OpenSim.Framework.Statistics
///
/// Collects user service statistics
///
- public class UserStatsCollector
+ public class UserStatsCollector : IStatsCollector
{
private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000);
--
cgit v1.1