Solution structure¶
Solution: ConnectSoft.Blazor.Mfe.ECS.MonitoringTemplate.slnx (repo root).
src/ConnectSoft.Blazor.Mfe.ECS.MonitoringTemplate/ # Blazor WASM (Sdk.BlazorWebAssembly), net10.0
├── Pages/ # flat layout: Home, MetricsDashboard, HealthStatus, AuditLogs, Alerts, UIKitDemo, Error
├── AlertsPushNotificationHost.razor # toasts for off-page alert pushes
└── wwwroot/appsettings.json # EcsMetricsApi, EcsHealthApi, EcsAuditLogApi, EcsAlertApi, EcsMonitoringRealtime
tests/...UnitTests/ # 8 test files (API clients + presentation)
docs/ # 6 files (currently generic shell docs)
packages/ # local offline NuGet cache (checked in)
Routes¶
| Route | Page |
|---|---|
/ |
Home |
/metrics |
MetricsDashboard (ApexCharts; demo mode when API unset) |
/health |
HealthStatus |
/audit-logs |
AuditLogs |
/alerts |
Alerts (list/filter/acknowledge/resolve) |
/uikit-demo, /Error |
utility |
Clients and config¶
| Config section | Client | Live API |
|---|---|---|
EcsMetricsApi |
EcsMetricsApiClient |
GET api/v1/metrics/series |
EcsHealthApi |
EcsHealthApiClient |
health API |
EcsAuditLogApi |
EcsAuditLogApiClient |
GET api/v1/audit-logs |
EcsAlertApi |
EcsAlertApiClient |
GET api/v1/alerts (+ acknowledge/resolve) |
EcsMonitoringRealtime |
MonitoringRealtimeHubClient |
SignalR hub (MetricsUpdated, HealthUpdated, AlertsUpdated) |
Empty BaseUrl -> demo data. Polling intervals are configurable (e.g. metrics 30s, health 15s).
Dependencies¶
Blazor-ApexCharts 6.1.0, Microsoft.AspNetCore.SignalR.Client 9.0.0, UIKit 1.0.157. See repo status regarding the net10/net9 package skew.