* Added "show queues" command that shows throttling queues for all clients.
*** This only works for LLCLientView at the moment ***0.6.1-post-fixes
parent
0f25e8298b
commit
56f1b03cd0
|
@ -373,7 +373,7 @@ namespace OpenSim.Framework.Servers
|
|||
/// That is something that cannot be determined within this class. So
|
||||
/// all attempts to use the console MUST be verified.
|
||||
/// </summary>
|
||||
private void Notice(string msg)
|
||||
protected void Notice(string msg)
|
||||
{
|
||||
if (m_console != null)
|
||||
{
|
||||
|
|
|
@ -675,10 +675,11 @@ namespace OpenSim
|
|||
m_console.Notice("script - manually trigger scripts? or script commands?");
|
||||
m_console.Notice("set-time [x] - set the current scene time phase");
|
||||
m_console.Notice("show assets - show state of asset cache.");
|
||||
m_console.Notice("show modules - shows info about loaded modules.");
|
||||
m_console.Notice("show queues - show packet queues length for all clients.");
|
||||
m_console.Notice("show regions - show running region information.");
|
||||
m_console.Notice("show users - show info about connected users (only root agents).");
|
||||
m_console.Notice("show users full - show info about connected users (root and child agents).");
|
||||
m_console.Notice("show modules - shows info about loaded modules.");
|
||||
m_console.Notice("show regions - show running region information.");
|
||||
m_console.Notice("config set section field value - set a config value");
|
||||
m_console.Notice("config get section field - get a config value");
|
||||
m_console.Notice("config save - save OpenSim.ini");
|
||||
|
@ -769,9 +770,50 @@ namespace OpenSim
|
|||
scene.RegionInfo.RegionLocY + " , Region Port: " + scene.RegionInfo.InternalEndPoint.Port.ToString());
|
||||
});
|
||||
break;
|
||||
|
||||
|
||||
case "queues":
|
||||
Notice(GetQueuesReport());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private string GetQueuesReport()
|
||||
{
|
||||
string report = String.Empty;
|
||||
|
||||
m_sceneManager.ForEachScene(delegate(Scene scene)
|
||||
{
|
||||
scene.ForEachClient(delegate(IClientAPI client)
|
||||
{
|
||||
if (client is IStatsCollector)
|
||||
{
|
||||
report = report + client.FirstName +
|
||||
" " + client.LastName + "\n";
|
||||
|
||||
IStatsCollector stats =
|
||||
(IStatsCollector) client;
|
||||
|
||||
report = report + string.Format("{0,7} {1,7} {2,7} {3,7} {4,7} {5,7} {6,7} {7,7} {8,7} {9,7}\n",
|
||||
"Send",
|
||||
"In",
|
||||
"Out",
|
||||
"Resend",
|
||||
"Land",
|
||||
"Wind",
|
||||
"Cloud",
|
||||
"Task",
|
||||
"Texture",
|
||||
"Asset");
|
||||
report = report + stats.Report() +
|
||||
"\n\n";
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a new user
|
||||
/// </summary>
|
||||
|
|
|
@ -52,7 +52,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
/// Handles new client connections
|
||||
/// Constructor takes a single Packet and authenticates everything
|
||||
/// </summary>
|
||||
public class LLClientView : IClientAPI, IClientCore, IClientIM, IClientChat
|
||||
public class LLClientView : IClientAPI, IClientCore, IClientIM, IClientChat, IStatsCollector
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
|
@ -8093,5 +8093,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string Report()
|
||||
{
|
||||
LLPacketHandler handler = (LLPacketHandler) m_PacketHandler;
|
||||
return handler.PacketQueue.GetStats();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -610,7 +610,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
// See IPullStatsProvider
|
||||
public string GetStats()
|
||||
{
|
||||
return string.Format("{0,7} {1,7} {2,7} {3,7} {4,7} {5,7} {6,7} {7,7} {8,7} {9,7}",
|
||||
return string.Format("{0,7} {1,7} {2,7} {3,7} {4,7} {5,7} {6,7} {7,7} {8,7} {9,7}",
|
||||
SendQueue.Count(),
|
||||
IncomingPacketQueue.Count,
|
||||
OutgoingPacketQueue.Count,
|
||||
|
|
|
@ -4227,7 +4227,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
return m_sceneGraph.TryGetAvatarByName(avatarName, out avatar);
|
||||
}
|
||||
|
||||
internal void ForEachClient(Action<IClientAPI> action)
|
||||
public void ForEachClient(Action<IClientAPI> action)
|
||||
{
|
||||
m_sceneGraph.ForEachClient(action);
|
||||
}
|
||||
|
|
|
@ -2346,6 +2346,7 @@
|
|||
<Reference name="OpenSim.Framework"/>
|
||||
<Reference name="OpenSim.Data"/>
|
||||
<Reference name="OpenSim.Framework.Servers"/>
|
||||
<Reference name="OpenSim.Framework.Statistics"/>
|
||||
<Reference name="OpenSim.Framework.Console"/>
|
||||
<Reference name="OpenSim.Region.Environment"/>
|
||||
<Reference name="OpenSim.Region.ClientStack"/>
|
||||
|
|
Loading…
Reference in New Issue