using Fleet.Core; using Monitor.Backend.Analysis; namespace Monitor.Backend.Application; public sealed record SummaryResult( IReadOnlyDictionary Values, IReadOnlyDictionary Samples, double Coverage); public sealed record GapInfo(long FromMs, long ToMs, string Reason); public sealed record SeriesResult( LineKey Line, QueryRange Range, SourcePlan Plan, IReadOnlyList T, IReadOnlyDictionary Values, SummaryResult Summary, IReadOnlyList Gaps, IReadOnlyList Events, IReadOnlyDictionary Versions); public sealed record OverviewLine(LineView Line, SummaryResult Summary, TestRecord? LastTest); public sealed record OverviewResult(QueryRange Range, IReadOnlyList Lines, SourcePlan Plan); public sealed record DistributionBucket(double Le, ulong Count); public sealed record DistributionResult( string Metric, string Unit, IReadOnlyList Buckets, double? P50, double? P95, double? P99, ulong Count); public sealed record HeatmapResult(IReadOnlyList T, IReadOnlyList Edges, IReadOnlyList> Counts, QueryRange Range, SourcePlan Plan); public sealed record CompareResult( IReadOnlyList T, IReadOnlyDictionary Values, IReadOnlyDictionary Summary, string Metric, QueryRange Range, SourcePlan Plan);