feat(sitecallaudit): query, KPI and detail backend for the Site Calls page
This commit is contained in:
38
src/ScadaLink.Commons/Types/Audit/SiteCallKpiSnapshot.cs
Normal file
38
src/ScadaLink.Commons/Types/Audit/SiteCallKpiSnapshot.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
namespace ScadaLink.Commons.Types.Audit;
|
||||
|
||||
/// <summary>
|
||||
/// Point-in-time operational metrics for the central <c>SiteCalls</c> table
|
||||
/// (Site Call Audit #22), surfaced on the health dashboard. The cached-call
|
||||
/// counterpart of <see cref="ScadaLink.Commons.Types.Notifications.NotificationKpiSnapshot"/>;
|
||||
/// mirrors its shape so the Central UI Site Calls KPI tiles can reuse the
|
||||
/// Notification Outbox tile layout.
|
||||
/// </summary>
|
||||
/// <param name="BufferedCount">
|
||||
/// Count of non-terminal rows (<c>Pending</c> + <c>Retrying</c>) — calls
|
||||
/// buffered at sites awaiting retry.
|
||||
/// </param>
|
||||
/// <param name="ParkedCount">Count of rows in the <c>Parked</c> status.</param>
|
||||
/// <param name="FailedLastInterval">
|
||||
/// Count of <c>Failed</c> rows whose <see cref="ScadaLink.Commons.Entities.Audit.SiteCall.TerminalAtUtc"/>
|
||||
/// is at or after the supplied "since" timestamp.
|
||||
/// </param>
|
||||
/// <param name="DeliveredLastInterval">
|
||||
/// Count of <c>Delivered</c> rows whose <see cref="ScadaLink.Commons.Entities.Audit.SiteCall.TerminalAtUtc"/>
|
||||
/// is at or after the supplied "since" timestamp.
|
||||
/// </param>
|
||||
/// <param name="OldestPendingAge">
|
||||
/// Age of the oldest non-terminal row (<c>now - min(CreatedAtUtc)</c>), or
|
||||
/// <c>null</c> when there are no non-terminal rows.
|
||||
/// </param>
|
||||
/// <param name="StuckCount">
|
||||
/// Count of non-terminal rows (<c>Pending</c>/<c>Retrying</c>) whose
|
||||
/// <see cref="ScadaLink.Commons.Entities.Audit.SiteCall.CreatedAtUtc"/> is older
|
||||
/// than the supplied stuck cutoff. Display-only — no escalation.
|
||||
/// </param>
|
||||
public sealed record SiteCallKpiSnapshot(
|
||||
int BufferedCount,
|
||||
int ParkedCount,
|
||||
int FailedLastInterval,
|
||||
int DeliveredLastInterval,
|
||||
TimeSpan? OldestPendingAge,
|
||||
int StuckCount);
|
||||
34
src/ScadaLink.Commons/Types/Audit/SiteCallSiteKpiSnapshot.cs
Normal file
34
src/ScadaLink.Commons/Types/Audit/SiteCallSiteKpiSnapshot.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
namespace ScadaLink.Commons.Types.Audit;
|
||||
|
||||
/// <summary>
|
||||
/// Point-in-time <c>SiteCalls</c> metrics scoped to a single source site. The
|
||||
/// per-site counterpart of <see cref="SiteCallKpiSnapshot"/>; surfaced in the
|
||||
/// per-site breakdown table on the Site Calls KPIs page. Mirrors
|
||||
/// <see cref="ScadaLink.Commons.Types.Notifications.SiteNotificationKpiSnapshot"/>.
|
||||
/// </summary>
|
||||
/// <param name="SourceSite">The site identifier these metrics are scoped to.</param>
|
||||
/// <param name="BufferedCount">Count of this site's non-terminal rows (<c>Pending</c> + <c>Retrying</c>).</param>
|
||||
/// <param name="ParkedCount">Count of this site's rows in the <c>Parked</c> status.</param>
|
||||
/// <param name="FailedLastInterval">
|
||||
/// Count of this site's <c>Failed</c> rows whose <c>TerminalAtUtc</c> is at or
|
||||
/// after the "since" timestamp.
|
||||
/// </param>
|
||||
/// <param name="DeliveredLastInterval">
|
||||
/// Count of this site's <c>Delivered</c> rows whose <c>TerminalAtUtc</c> is at
|
||||
/// or after the "since" timestamp.
|
||||
/// </param>
|
||||
/// <param name="OldestPendingAge">
|
||||
/// Age of this site's oldest non-terminal row, or <c>null</c> when it has none.
|
||||
/// </param>
|
||||
/// <param name="StuckCount">
|
||||
/// Count of this site's non-terminal rows whose <c>CreatedAtUtc</c> is older
|
||||
/// than the stuck cutoff.
|
||||
/// </param>
|
||||
public sealed record SiteCallSiteKpiSnapshot(
|
||||
string SourceSite,
|
||||
int BufferedCount,
|
||||
int ParkedCount,
|
||||
int FailedLastInterval,
|
||||
int DeliveredLastInterval,
|
||||
TimeSpan? OldestPendingAge,
|
||||
int StuckCount);
|
||||
Reference in New Issue
Block a user