feat(health): show all cluster nodes (online/offline, primary/standby) in health dashboard

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.
This commit is contained in:
Joseph Doherty
2026-03-23 14:54:59 -04:00
parent 65cc7b69cd
commit 02a7e8abc6
9 changed files with 127 additions and 8 deletions

View File

@@ -21,6 +21,7 @@ public interface ISiteHealthCollector
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);