Files
EonaCat.JASP/EonaCat.JASP/Models/NetworkStats.cs
2026-02-06 19:05:53 +01:00

41 lines
1.3 KiB
C#

using System;
namespace EonaCat.JASP.Models
{
public class NetworkStats
{
public long MessagesSent { get; set; }
public long MessagesReceived { get; set; }
public long BytesSent { get; set; }
public long BytesReceived { get; set; }
public long Errors { get; set; }
public DateTime StartTime { get; set; }
public int ActiveConnections { get; set; }
public NetworkStats()
{
StartTime = DateTime.UtcNow;
}
public double GetMessagesPerSecond()
{
var elapsed = (DateTime.UtcNow - StartTime).TotalSeconds;
return elapsed > 0 ? MessagesReceived / elapsed : 0;
}
public override string ToString()
{
var uptime = DateTime.UtcNow - StartTime;
return $"Stats:\n" +
$" Uptime: {uptime}\n" +
$" Messages Sent: {MessagesSent:N0}\n" +
$" Messages Received: {MessagesReceived:N0}\n" +
$" Bytes Sent: {BytesSent:N0}\n" +
$" Bytes Received: {BytesReceived:N0}\n" +
$" Active Connections: {ActiveConnections}\n" +
$" Messages/sec: {GetMessagesPerSecond():N2}\n" +
$" Errors: {Errors:N0}";
}
}
}