fix: wire up health report pipeline between sites and central aggregator

Sites now send SiteHealthReport via AkkaHealthReportTransport →
SiteCommunicationActor → CentralCommunicationActor → CentralHealthAggregator.
Added IHealthReportTransport impl, ISiteIdentityProvider impl, registered
HealthReportSender on site nodes, and added SiteHealthReport handler in
CentralCommunicationActor. Health Dashboard now shows all 3 sites online.
This commit is contained in:
Joseph Doherty
2026-03-17 23:46:17 -04:00
parent 9e97c1acd2
commit e5eb871961
5 changed files with 70 additions and 3 deletions
@@ -0,0 +1,18 @@
using Microsoft.Extensions.Options;
using ScadaLink.HealthMonitoring;
namespace ScadaLink.Host;
/// <summary>
/// Provides the site identity from NodeOptions configuration.
/// </summary>
public class SiteIdentityProvider : ISiteIdentityProvider
{
public string SiteId { get; }
public SiteIdentityProvider(IOptions<NodeOptions> nodeOptions)
{
SiteId = nodeOptions.Value.SiteId
?? throw new InvalidOperationException("SiteId is required for site nodes.");
}
}