55 lines
2.5 KiB
C#
55 lines
2.5 KiB
C#
using ScadaLink.Commons.Messages.Health;
|
|
using ScadaLink.Commons.Types;
|
|
using ScadaLink.Commons.Types.Enums;
|
|
|
|
namespace ScadaLink.HealthMonitoring;
|
|
|
|
/// <summary>
|
|
/// Interface for site-side health metric collection.
|
|
/// Consumed by Site Runtime actors to report errors, and by DCL to report connection health.
|
|
/// </summary>
|
|
public interface ISiteHealthCollector
|
|
{
|
|
void IncrementScriptError();
|
|
void IncrementAlarmError();
|
|
void IncrementDeadLetter();
|
|
/// <summary>
|
|
/// Audit Log (#23) Bundle G — increment the per-interval count of
|
|
/// <c>FallbackAuditWriter</c> primary failures. Bridged from the
|
|
/// <c>IAuditWriteFailureCounter</c> binding registered via
|
|
/// <c>AddAuditLogHealthMetricsBridge()</c>.
|
|
/// </summary>
|
|
void IncrementSiteAuditWriteFailures();
|
|
/// <summary>
|
|
/// Audit Log (#23) M5 Bundle C — increment the per-interval count of
|
|
/// payload-filter redactor over-redactions (header / body / SQL
|
|
/// parameter stage throws routed to the
|
|
/// <c><redacted: redactor error></c> marker). Bridged from the
|
|
/// <c>IAuditRedactionFailureCounter</c> binding registered via
|
|
/// <c>AddAuditLogHealthMetricsBridge()</c>.
|
|
/// </summary>
|
|
void IncrementAuditRedactionFailure();
|
|
/// <summary>
|
|
/// Audit Log (#23) M6 Bundle E (T6) — replace the latest site-local
|
|
/// audit-queue backlog snapshot (pending count, oldest pending row,
|
|
/// on-disk file bytes) used by the next <see cref="CollectReport"/> call.
|
|
/// Refreshed periodically by the <c>SiteAuditBacklogReporter</c> hosted
|
|
/// service so each report carries a recent point-in-time view of the
|
|
/// site→central drain health.
|
|
/// </summary>
|
|
void UpdateSiteAuditBacklog(SiteAuditBacklogSnapshot snapshot);
|
|
void UpdateConnectionHealth(string connectionName, ConnectionHealth health);
|
|
void RemoveConnection(string connectionName);
|
|
void UpdateTagResolution(string connectionName, int totalSubscribed, int successfullyResolved);
|
|
void UpdateConnectionEndpoint(string connectionName, string endpoint);
|
|
void UpdateTagQuality(string connectionName, int good, int bad, int uncertain);
|
|
void SetStoreAndForwardDepths(IReadOnlyDictionary<string, int> depths);
|
|
void SetInstanceCounts(int deployed, int enabled, int disabled);
|
|
void SetParkedMessageCount(int count);
|
|
void SetNodeHostname(string hostname);
|
|
void SetClusterNodes(IReadOnlyList<Commons.Messages.Health.NodeStatus> nodes);
|
|
void SetActiveNode(bool isActive);
|
|
bool IsActiveNode { get; }
|
|
SiteHealthReport CollectReport(string siteId);
|
|
}
|