From fa5fe6b7f6f187817ad166799f99fe2e5699fbf1 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Mon, 28 Jan 2008 19:49:07 +0000 Subject: * Move AssetStatsReporter to Framework.Statistics * The hooks are still plugged in too high at the asset server, but then next layer down is the database and this may be refactored soon. * This change will requires a prebuild --- OpenSim/Framework/Statistics/AssetStatsReporter.cs | 82 ++++++++++++++++++++++ OpenSim/Grid/AssetServer/AssetStatsReporter.cs | 82 ---------------------- OpenSim/Grid/AssetServer/Main.cs | 1 + OpenSim/Grid/AssetServer/RestService.cs | 1 + 4 files changed, 84 insertions(+), 82 deletions(-) create mode 100644 OpenSim/Framework/Statistics/AssetStatsReporter.cs delete mode 100644 OpenSim/Grid/AssetServer/AssetStatsReporter.cs (limited to 'OpenSim') diff --git a/OpenSim/Framework/Statistics/AssetStatsReporter.cs b/OpenSim/Framework/Statistics/AssetStatsReporter.cs new file mode 100644 index 0000000..ea5add5 --- /dev/null +++ b/OpenSim/Framework/Statistics/AssetStatsReporter.cs @@ -0,0 +1,82 @@ +/* +* 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. +* +*/ + +using System.Text; +using System.Timers; + +namespace OpenSim.Grid.AssetServer +{ + /// + /// Collects and reports information on the requests made to the asset server + /// + public class AssetStatsReporter + { + private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000); + + private long assetRequestsToday; + public long AssetRequestsToday { get { return assetRequestsToday; } } + + private long assetRequestsYesterday; + public long AssetRequestsYesterday { get { return assetRequestsYesterday; } } + + public AssetStatsReporter() + { + ageStatsTimer.Elapsed += new ElapsedEventHandler(OnAgeing); + ageStatsTimer.Enabled = true; + } + + private void OnAgeing(object source, ElapsedEventArgs e) + { + assetRequestsYesterday = assetRequestsToday; + + // There is a possibility that an asset request could occur between the execution of these + // two statements. But we're better off without the synchronization overhead. + assetRequestsToday = 0; + } + + /// + /// Record that a request was made to the asset server + /// + public void AddRequest() + { + assetRequestsToday++; + } + + /// + /// Report back collected statistical information. + /// + /// + public string Report() + { + return string.Format( +@"Asset requests today : {0} +Asset requests yesterday : {1}", + AssetRequestsToday, AssetRequestsYesterday); + } + } +} diff --git a/OpenSim/Grid/AssetServer/AssetStatsReporter.cs b/OpenSim/Grid/AssetServer/AssetStatsReporter.cs deleted file mode 100644 index ea5add5..0000000 --- a/OpenSim/Grid/AssetServer/AssetStatsReporter.cs +++ /dev/null @@ -1,82 +0,0 @@ -/* -* 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. -* -*/ - -using System.Text; -using System.Timers; - -namespace OpenSim.Grid.AssetServer -{ - /// - /// Collects and reports information on the requests made to the asset server - /// - public class AssetStatsReporter - { - private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000); - - private long assetRequestsToday; - public long AssetRequestsToday { get { return assetRequestsToday; } } - - private long assetRequestsYesterday; - public long AssetRequestsYesterday { get { return assetRequestsYesterday; } } - - public AssetStatsReporter() - { - ageStatsTimer.Elapsed += new ElapsedEventHandler(OnAgeing); - ageStatsTimer.Enabled = true; - } - - private void OnAgeing(object source, ElapsedEventArgs e) - { - assetRequestsYesterday = assetRequestsToday; - - // There is a possibility that an asset request could occur between the execution of these - // two statements. But we're better off without the synchronization overhead. - assetRequestsToday = 0; - } - - /// - /// Record that a request was made to the asset server - /// - public void AddRequest() - { - assetRequestsToday++; - } - - /// - /// Report back collected statistical information. - /// - /// - public string Report() - { - return string.Format( -@"Asset requests today : {0} -Asset requests yesterday : {1}", - AssetRequestsToday, AssetRequestsYesterday); - } - } -} diff --git a/OpenSim/Grid/AssetServer/Main.cs b/OpenSim/Grid/AssetServer/Main.cs index 1e0dced..de16470 100644 --- a/OpenSim/Grid/AssetServer/Main.cs +++ b/OpenSim/Grid/AssetServer/Main.cs @@ -34,6 +34,7 @@ using OpenSim.Framework; using OpenSim.Framework.AssetLoader.Filesystem; using OpenSim.Framework.Console; using OpenSim.Framework.Servers; +using OpenSim.Framework.Statistics; namespace OpenSim.Grid.AssetServer { diff --git a/OpenSim/Grid/AssetServer/RestService.cs b/OpenSim/Grid/AssetServer/RestService.cs index 36dcdb0..6e4ae8f 100644 --- a/OpenSim/Grid/AssetServer/RestService.cs +++ b/OpenSim/Grid/AssetServer/RestService.cs @@ -35,6 +35,7 @@ using libsecondlife; using OpenSim.Framework; using OpenSim.Framework.Console; using OpenSim.Framework.Servers; +using OpenSim.Framework.Statistics; namespace OpenSim.Grid.AssetServer { -- cgit v1.1