* Add total logouts (and total logins) to server side user stats
* Passing the stats collector through object chains is not ideal - this will change when more stats come in * This change will need a prebuildThreadPoolClientBranch
parent
fa5fe6b7f6
commit
beefbb46d2
|
@ -34,6 +34,7 @@ using libsecondlife;
|
|||
using libsecondlife.StructuredData;
|
||||
using Nwc.XmlRpc;
|
||||
using OpenSim.Framework.Console;
|
||||
using OpenSim.Framework.Statistics;
|
||||
|
||||
namespace OpenSim.Framework.UserManagement
|
||||
{
|
||||
|
@ -44,7 +45,18 @@ namespace OpenSim.Framework.UserManagement
|
|||
{
|
||||
public UserConfig _config;
|
||||
private Dictionary<string, IUserData> _plugins = new Dictionary<string, IUserData>();
|
||||
protected UserStatsReporter _stats;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="statsCollector">Can be null if stats collection is not required.
|
||||
/// </param>
|
||||
public UserManagerBase(UserStatsReporter statsCollector)
|
||||
{
|
||||
_stats = statsCollector;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds a new user server plugin - user servers will be requested in the order they were loaded.
|
||||
/// </summary>
|
||||
|
@ -411,8 +423,21 @@ namespace OpenSim.Framework.UserManagement
|
|||
|
||||
profile.currentAgent = agent;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Process a user logoff from OpenSim.
|
||||
/// </summary>
|
||||
/// <param name="userid"></param>
|
||||
/// <param name="regionid"></param>
|
||||
/// <param name="regionhandle"></param>
|
||||
/// <param name="posx"></param>
|
||||
/// <param name="posy"></param>
|
||||
/// <param name="posz"></param>
|
||||
public void LogOffUser(LLUUID userid, LLUUID regionid, ulong regionhandle, float posx, float posy, float posz)
|
||||
{
|
||||
if (_stats != null)
|
||||
_stats.AddLogout();
|
||||
|
||||
UserProfileData userProfile;
|
||||
UserAgentData userAgent;
|
||||
LLVector3 currentPos = new LLVector3(posx, posy, posz);
|
||||
|
@ -450,6 +475,7 @@ namespace OpenSim.Framework.UserManagement
|
|||
MainLog.Instance.Warn("LOGOUT", "Unknown User logged out");
|
||||
}
|
||||
}
|
||||
|
||||
public void CreateAgent(UserProfileData profile, LLSD request)
|
||||
{
|
||||
UserAgentData agent = new UserAgentData();
|
||||
|
|
|
@ -42,7 +42,13 @@ namespace OpenSim.Framework.Statistics
|
|||
public int SuccessfulLoginsToday { get { return successfulLoginsToday; } }
|
||||
|
||||
private int successfulLoginsYesterday;
|
||||
public int SuccessfulLoginsYesterday { get { return successfulLoginsYesterday; } }
|
||||
public int SuccessfulLoginsYesterday { get { return successfulLoginsYesterday; } }
|
||||
|
||||
private int successfulLogins;
|
||||
public int SuccessfulLogins { get { return successfulLogins; } }
|
||||
|
||||
private int logouts;
|
||||
public int Logouts { get { return logouts; } }
|
||||
|
||||
public UserStatsReporter()
|
||||
{
|
||||
|
@ -64,8 +70,14 @@ namespace OpenSim.Framework.Statistics
|
|||
/// </summary>
|
||||
public void AddSuccessfulLogin()
|
||||
{
|
||||
successfulLogins++;
|
||||
successfulLoginsToday++;
|
||||
}
|
||||
|
||||
public void AddLogout()
|
||||
{
|
||||
logouts++;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Report back collected statistical information.
|
||||
|
@ -74,9 +86,9 @@ namespace OpenSim.Framework.Statistics
|
|||
public string Report()
|
||||
{
|
||||
return string.Format(
|
||||
@"Successful logins today : {0}
|
||||
Successful logins yesterday : {1}",
|
||||
SuccessfulLoginsToday, SuccessfulLoginsYesterday);
|
||||
@"Successful logins total : {0}, today : {1}, yesterday : {2}
|
||||
Logouts total : {3}",
|
||||
SuccessfulLogins, SuccessfulLoginsToday, SuccessfulLoginsYesterday, Logouts);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,7 +44,6 @@ namespace OpenSim.Grid.UserServer
|
|||
{
|
||||
private UserConfig Cfg;
|
||||
|
||||
|
||||
public UserManager m_userManager;
|
||||
public UserLoginService m_loginService;
|
||||
public MessageServersConnector m_messagesService;
|
||||
|
@ -89,13 +88,13 @@ namespace OpenSim.Grid.UserServer
|
|||
public void Startup()
|
||||
{
|
||||
Cfg = new UserConfig("USER SERVER", (Path.Combine(Util.configDir(), "UserServer_Config.xml")));
|
||||
|
||||
m_stats = new UserStatsReporter();
|
||||
|
||||
MainLog.Instance.Verbose("REGION", "Establishing data connection");
|
||||
m_userManager = new UserManager();
|
||||
m_userManager = new UserManager(m_stats);
|
||||
m_userManager._config = Cfg;
|
||||
m_userManager.AddPlugin(Cfg.DatabaseProvider);
|
||||
|
||||
m_stats = new UserStatsReporter();
|
||||
m_userManager.AddPlugin(Cfg.DatabaseProvider);
|
||||
|
||||
m_loginService = new UserLoginService(
|
||||
m_userManager, new LibraryRootFolder(), m_stats, Cfg, Cfg.DefaultStartupMsg);
|
||||
|
|
|
@ -32,16 +32,21 @@ using System.Text.RegularExpressions;
|
|||
using libsecondlife;
|
||||
using Nwc.XmlRpc;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Statistics;
|
||||
using OpenSim.Framework.UserManagement;
|
||||
|
||||
namespace OpenSim.Grid.UserServer
|
||||
{
|
||||
public class UserManager : UserManagerBase
|
||||
{
|
||||
public UserManager()
|
||||
{
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
/// </summary>
|
||||
/// <param name="statsCollector">Can be null if stats collection is not required.
|
||||
/// </param>
|
||||
public UserManager(UserStatsReporter statsCollector) : base(statsCollector)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deletes an active agent session
|
||||
|
|
|
@ -317,7 +317,7 @@ namespace OpenSim
|
|||
|
||||
LocalUserServices userService =
|
||||
new LocalUserServices(m_networkServersInfo, m_networkServersInfo.DefaultHomeLocX,
|
||||
m_networkServersInfo.DefaultHomeLocY, inventoryService);
|
||||
m_networkServersInfo.DefaultHomeLocY, inventoryService, null);
|
||||
userService.AddPlugin(m_standaloneUserPlugin);
|
||||
|
||||
LocalBackEndServices backendService = new LocalBackEndServices();
|
||||
|
|
|
@ -30,6 +30,7 @@ using System;
|
|||
using libsecondlife;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Communications;
|
||||
using OpenSim.Framework.Statistics;
|
||||
using OpenSim.Framework.UserManagement;
|
||||
|
||||
namespace OpenSim.Region.Communications.Local
|
||||
|
@ -42,8 +43,17 @@ namespace OpenSim.Region.Communications.Local
|
|||
private IInventoryServices m_inventoryService;
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="serversInfo"></param>
|
||||
/// <param name="defaultHomeLocX"></param>
|
||||
/// <param name="defaultHomeLocY"></param>
|
||||
/// <param name="inventoryService"></param>
|
||||
/// <param name="statsCollector">Can be null if stats collection is not required.</param>
|
||||
public LocalUserServices(NetworkServersInfo serversInfo, uint defaultHomeLocX, uint defaultHomeLocY,
|
||||
IInventoryServices inventoryService)
|
||||
IInventoryServices inventoryService, UserStatsReporter statsCollector)
|
||||
: base(statsCollector)
|
||||
{
|
||||
m_serversInfo = serversInfo;
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ namespace SimpleApp
|
|||
|
||||
LocalUserServices userService =
|
||||
new LocalUserServices(m_networkServersInfo, m_networkServersInfo.DefaultHomeLocX,
|
||||
m_networkServersInfo.DefaultHomeLocY, inventoryService);
|
||||
m_networkServersInfo.DefaultHomeLocY, inventoryService, null);
|
||||
userService.AddPlugin(m_userPlugin);
|
||||
|
||||
LocalBackEndServices backendService = new LocalBackEndServices();
|
||||
|
|
|
@ -1363,6 +1363,7 @@
|
|||
<Reference name="OpenSim.Framework"/>
|
||||
<Reference name="OpenSim.Framework.Data"/>
|
||||
<Reference name="OpenSim.Framework.Console"/>
|
||||
<Reference name="OpenSim.Framework.Statistics"/>
|
||||
<Reference name="OpenSim.Region.Physics.Manager"/>
|
||||
<Reference name="OpenSim.Framework.Servers"/>
|
||||
<Reference name="OpenSim.Region.Environment"/>
|
||||
|
|
Loading…
Reference in New Issue