diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index 5d21d8ced6..64774291f1 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -70,8 +70,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
StatsManager.RegisterStat(
new Stat(
"IncomingUDPReceivesCount",
- "Number of inbound LL protocol packets processed",
- "Number of inbound LL protocol packets processed",
+ "Number of UDP receives performed",
+ "Number of UDP receives performed",
"",
"clientstack",
scene.Name,
@@ -93,6 +93,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
stat => stat.Value = m_udpServer.IncomingPacketsProcessed,
StatVerbosity.Debug));
+ StatsManager.RegisterStat(
+ new Stat(
+ "OutgoingUDPSendsCount",
+ "Number of UDP sends performed",
+ "Number of UDP sends performed",
+ "",
+ "clientstack",
+ scene.Name,
+ StatType.Pull,
+ MeasuresOfInterest.AverageChangeOverTime,
+ stat => stat.Value = m_udpServer.UdpSends,
+ StatVerbosity.Debug));
+
StatsManager.RegisterStat(
new Stat(
"AverageUDPProcessTime",
@@ -856,7 +869,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
PacketPool.Instance.ReturnPacket(packet);
m_dataPresentEvent.Set();
-
}
private AutoResetEvent m_dataPresentEvent = new AutoResetEvent(false);
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs b/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs
index b4044b510b..d0ed7e81e7 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs
@@ -82,6 +82,11 @@ namespace OpenMetaverse
///
public int UdpReceives { get; private set; }
+ ///
+ /// Number of UDP sends
+ ///
+ public int UdpSends { get; private set; }
+
///
/// Number of receives over which to establish a receive time average.
///
@@ -381,6 +386,8 @@ namespace OpenMetaverse
{
// UDPPacketBuffer buf = (UDPPacketBuffer)result.AsyncState;
m_udpSocket.EndSendTo(result);
+
+ UdpSends++;
}
catch (SocketException) { }
catch (ObjectDisposedException) { }