mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-15 03:30:53 +01:00
More lidgren stats exposed to prometheus.
This commit is contained in:
@@ -159,7 +159,7 @@ namespace Lidgren.Network
|
||||
/// <summary>
|
||||
/// Gets the number of unsent and stored messages for this connection
|
||||
/// </summary>
|
||||
private void GetUnsentAndStoredMessages(out int numUnsent, out int numStored)
|
||||
internal void GetUnsentAndStoredMessages(out int numUnsent, out int numStored)
|
||||
{
|
||||
numUnsent = 0;
|
||||
numStored = 0;
|
||||
@@ -211,6 +211,7 @@ namespace Lidgren.Network
|
||||
#endif
|
||||
internal void MessageResent(MessageResendReason reason)
|
||||
{
|
||||
m_connection.m_peer.Statistics.MessageResent(reason);
|
||||
if (reason == MessageResendReason.Delay)
|
||||
m_resentMessagesDueToDelay++;
|
||||
else
|
||||
@@ -222,6 +223,7 @@ namespace Lidgren.Network
|
||||
#endif
|
||||
internal void MessageDropped()
|
||||
{
|
||||
m_connection.m_peer.Statistics.MessageDropped();
|
||||
m_droppedMessages++;
|
||||
}
|
||||
|
||||
|
||||
@@ -98,6 +98,29 @@ namespace Lidgren.Network
|
||||
/// </summary>
|
||||
public int ReceivedBytes => m_receivedBytes;
|
||||
|
||||
public int ResentMessages => ResentMessagesDueToDelays + ResentMessagesDueToHoles;
|
||||
public int ResentMessagesDueToHoles { get; private set; }
|
||||
public int ResentMessagesDueToDelays { get; private set; }
|
||||
public int DroppedMessages { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the number of unsent and stored messages for this peer
|
||||
/// </summary>
|
||||
public void GetUnsentAndStoredMessages(out int numUnsent, out int numStored)
|
||||
{
|
||||
numUnsent = 0;
|
||||
numStored = 0;
|
||||
lock (m_peer.m_connections)
|
||||
{
|
||||
foreach (var connection in m_peer.m_connections)
|
||||
{
|
||||
connection.Statistics.GetUnsentAndStoredMessages(out var cUnsent, out var cStored);
|
||||
numUnsent += cUnsent;
|
||||
numStored += cStored;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if !USE_RELEASE_STATISTICS
|
||||
[Conditional("DEBUG")]
|
||||
#endif
|
||||
@@ -119,6 +142,25 @@ namespace Lidgren.Network
|
||||
m_receivedFragments += numFragments;
|
||||
}
|
||||
|
||||
#if !USE_RELEASE_STATISTICS
|
||||
[Conditional("DEBUG")]
|
||||
#endif
|
||||
internal void MessageResent(MessageResendReason reason)
|
||||
{
|
||||
if (reason == MessageResendReason.Delay)
|
||||
ResentMessagesDueToDelays++;
|
||||
else
|
||||
ResentMessagesDueToHoles++;
|
||||
}
|
||||
|
||||
#if !USE_RELEASE_STATISTICS
|
||||
[Conditional("DEBUG")]
|
||||
#endif
|
||||
internal void MessageDropped()
|
||||
{
|
||||
DroppedMessages++;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a string that represents this object
|
||||
/// </summary>
|
||||
|
||||
@@ -65,6 +65,27 @@ namespace Robust.Shared.Network
|
||||
"robust_net_recv_bytes",
|
||||
"Number of bytes sent since server startup.");
|
||||
|
||||
private static readonly Counter MessagesResentDelayMetrics = Metrics.CreateCounter(
|
||||
"robust_net_resent_delay",
|
||||
"Number of messages that had to be re-sent due to delay.");
|
||||
|
||||
private static readonly Counter MessagesResentHoleMetrics = Metrics.CreateCounter(
|
||||
"robust_net_resent_hole",
|
||||
"Number of messages that had to be re-sent due to holes.");
|
||||
|
||||
private static readonly Counter MessagesDroppedMetrics = Metrics.CreateCounter(
|
||||
"robust_net_dropped",
|
||||
"Number of incoming messages that have been dropped.");
|
||||
|
||||
private static readonly Gauge MessagesStoredMetrics = Metrics.CreateGauge(
|
||||
"robust_net_stored",
|
||||
"Number of stores messages for reliable resending (if necessary).");
|
||||
|
||||
private static readonly Gauge MessagesUnsentMetrics = Metrics.CreateGauge(
|
||||
"robust_net_unsent",
|
||||
"Number of queued (unsent) messages that have yet to be sent.");
|
||||
|
||||
|
||||
|
||||
private readonly Dictionary<Type, ProcessMessage> _callbacks = new Dictionary<Type, ProcessMessage>();
|
||||
|
||||
@@ -228,6 +249,7 @@ namespace Robust.Shared.Network
|
||||
_config.RegisterCVar("net.fakeloss", 0.0f, CVar.CHEAT, _fakeLossChanged);
|
||||
_config.RegisterCVar("net.fakelagmin", 0.0f, CVar.CHEAT, _fakeLagMinChanged);
|
||||
_config.RegisterCVar("net.fakelagrand", 0.0f, CVar.CHEAT, _fakeLagRandomChanged);
|
||||
_config.RegisterCVar("net.fakeduplicates", 0.0f, CVar.CHEAT, _fakeLagRandomChanged);
|
||||
#endif
|
||||
|
||||
_strings.Initialize(this, () =>
|
||||
@@ -336,6 +358,11 @@ namespace Robust.Shared.Network
|
||||
var recvBytes = 0L;
|
||||
var sentPackets = 0L;
|
||||
var recvPackets = 0L;
|
||||
var resentDelays = 0L;
|
||||
var resentHoles = 0L;
|
||||
var dropped = 0L;
|
||||
var unsent = 0L;
|
||||
var stored = 0L;
|
||||
|
||||
foreach (var peer in _netPeers)
|
||||
{
|
||||
@@ -394,6 +421,13 @@ namespace Robust.Shared.Network
|
||||
recvBytes += peer.Statistics.ReceivedBytes;
|
||||
sentPackets += peer.Statistics.SentPackets;
|
||||
recvPackets += peer.Statistics.ReceivedPackets;
|
||||
resentDelays += peer.Statistics.ResentMessagesDueToDelays;
|
||||
resentHoles += peer.Statistics.ResentMessagesDueToHoles;
|
||||
dropped += peer.Statistics.DroppedMessages;
|
||||
|
||||
peer.Statistics.GetUnsentAndStoredMessages(out var pUnsent, out var pStored);
|
||||
unsent += pUnsent;
|
||||
stored += pStored;
|
||||
}
|
||||
|
||||
if (_toCleanNetPeers.Count != 0)
|
||||
@@ -410,6 +444,12 @@ namespace Robust.Shared.Network
|
||||
RecvBytesMetrics.IncTo(recvBytes);
|
||||
SentPacketsMetrics.IncTo(sentPackets);
|
||||
RecvPacketsMetrics.IncTo(recvPackets);
|
||||
MessagesResentDelayMetrics.IncTo(resentDelays);
|
||||
MessagesResentHoleMetrics.IncTo(resentHoles);
|
||||
MessagesDroppedMetrics.IncTo(dropped);
|
||||
|
||||
MessagesUnsentMetrics.Set(unsent);
|
||||
MessagesStoredMetrics.Set(stored);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -447,6 +487,7 @@ namespace Robust.Shared.Network
|
||||
netConfig.SimulatedLoss = _config.GetCVar<float>("net.fakeloss");
|
||||
netConfig.SimulatedMinimumLatency = _config.GetCVar<float>("net.fakelagmin");
|
||||
netConfig.SimulatedRandomLatency = _config.GetCVar<float>("net.fakelagrand");
|
||||
netConfig.SimulatedDuplicatesChance = _config.GetCVar<float>("net.fakeduplicates");
|
||||
|
||||
netConfig.ConnectionTimeout = 30000f;
|
||||
#endif
|
||||
@@ -477,6 +518,14 @@ namespace Robust.Shared.Network
|
||||
peer.Configuration.SimulatedRandomLatency = newValue;
|
||||
}
|
||||
}
|
||||
|
||||
private void FakeDuplicatesChanged(float newValue)
|
||||
{
|
||||
foreach (var peer in _netPeers)
|
||||
{
|
||||
peer.Configuration.SimulatedDuplicatesChance = newValue;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user