namespace NATS.Server.Benchmark.Tests.Harness;
///
/// Captures the results of a single benchmark run against one server.
///
public sealed record BenchmarkResult
{
public required string Name { get; init; }
public required string ServerType { get; init; }
public required long TotalMessages { get; init; }
public required long TotalBytes { get; init; }
public required TimeSpan Duration { get; init; }
/// Latency percentiles in microseconds, if measured.
public LatencyPercentiles? Latencies { get; init; }
public double MessagesPerSecond => TotalMessages / Duration.TotalSeconds;
public double BytesPerSecond => TotalBytes / Duration.TotalSeconds;
public double MegabytesPerSecond => BytesPerSecond / (1024.0 * 1024.0);
}
public sealed record LatencyPercentiles(
double P50Us,
double P95Us,
double P99Us,
double MinUs,
double MaxUs);