02a7e8abc6
Add NodeStatus record, IClusterNodeProvider interface, and AkkaClusterNodeProvider that queries Akka cluster membership for all site-role nodes. HealthReportSender populates ClusterNodes before each report. UI shows a row per node with hostname, Online/Offline badge, and Primary/Standby badge. Falls back to single-node display if ClusterNodes is not populated.
24 lines
893 B
C#
24 lines
893 B
C#
using ScadaLink.Commons.Types.Enums;
|
|
|
|
namespace ScadaLink.Commons.Messages.Health;
|
|
|
|
public record SiteHealthReport(
|
|
string SiteId,
|
|
long SequenceNumber,
|
|
DateTimeOffset ReportTimestamp,
|
|
IReadOnlyDictionary<string, ConnectionHealth> DataConnectionStatuses,
|
|
IReadOnlyDictionary<string, TagResolutionStatus> TagResolutionCounts,
|
|
int ScriptErrorCount,
|
|
int AlarmEvaluationErrorCount,
|
|
IReadOnlyDictionary<string, int> StoreAndForwardBufferDepths,
|
|
int DeadLetterCount,
|
|
int DeployedInstanceCount,
|
|
int EnabledInstanceCount,
|
|
int DisabledInstanceCount,
|
|
string NodeRole = "Unknown",
|
|
string NodeHostname = "",
|
|
IReadOnlyDictionary<string, string>? DataConnectionEndpoints = null,
|
|
IReadOnlyDictionary<string, TagQualityCounts>? DataConnectionTagQuality = null,
|
|
int ParkedMessageCount = 0,
|
|
IReadOnlyList<NodeStatus>? ClusterNodes = null);
|