41 lines
1.3 KiB
C#
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}";
|
|
}
|
|
}
|
|
} |