feat(health): SiteAuditBacklog metric (count + age + bytes) (#23 M6)
This commit is contained in:
32
src/ScadaLink.Commons/Types/SiteAuditBacklogSnapshot.cs
Normal file
32
src/ScadaLink.Commons/Types/SiteAuditBacklogSnapshot.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
namespace ScadaLink.Commons.Types;
|
||||
|
||||
/// <summary>
|
||||
/// Audit Log (#23) M6 Bundle E (T6) — point-in-time snapshot of the site-local
|
||||
/// SQLite audit-log queue health, surfaced on
|
||||
/// <see cref="ScadaLink.Commons.Messages.Health.SiteHealthReport"/> as
|
||||
/// <c>SiteAuditBacklog</c> and refreshed periodically by the
|
||||
/// <c>SiteAuditBacklogReporter</c> hosted service.
|
||||
/// </summary>
|
||||
/// <param name="PendingCount">
|
||||
/// Number of rows currently in
|
||||
/// <see cref="ScadaLink.Commons.Types.Enums.AuditForwardState.Pending"/> — i.e.
|
||||
/// not yet acknowledged by central via either the push-telemetry or
|
||||
/// reconciliation-pull paths. A persistently non-zero value with rising
|
||||
/// <see cref="OldestPendingUtc"/> indicates the site→central drain isn't
|
||||
/// keeping up.
|
||||
/// </param>
|
||||
/// <param name="OldestPendingUtc">
|
||||
/// <see cref="ScadaLink.Commons.Entities.Audit.AuditEvent.OccurredAtUtc"/> of
|
||||
/// the oldest Pending row, or <c>null</c> if the queue is empty. Used by ops
|
||||
/// to compute backlog age without a separate query.
|
||||
/// </param>
|
||||
/// <param name="OnDiskBytes">
|
||||
/// Size of the SQLite file on disk in bytes, or <c>0</c> if the writer is
|
||||
/// running against an in-memory database. Mirrors the 7-day retention
|
||||
/// invariant (alog.md §10) — a steady file-size growth past the retention
|
||||
/// window points at a stuck purge or a stuck forwarder.
|
||||
/// </param>
|
||||
public sealed record SiteAuditBacklogSnapshot(
|
||||
int PendingCount,
|
||||
DateTime? OldestPendingUtc,
|
||||
long OnDiskBytes);
|
||||
Reference in New Issue
Block a user