using ScadaLink.Commons.Messages.Health; using ScadaLink.Commons.Types.Enums; namespace ScadaLink.HealthMonitoring; /// /// Interface for site-side health metric collection. /// Consumed by Site Runtime actors to report errors, and by DCL to report connection health. /// public interface ISiteHealthCollector { void IncrementScriptError(); void IncrementAlarmError(); void IncrementDeadLetter(); 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 depths); void SetInstanceCounts(int deployed, int enabled, int disabled); void SetParkedMessageCount(int count); void SetNodeHostname(string hostname); void SetClusterNodes(IReadOnlyList nodes); void SetActiveNode(bool isActive); bool IsActiveNode { get; } SiteHealthReport CollectReport(string siteId); }