Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.AdminDashboard
Overview
The Admin Dashboard feature aggregates operational telemetry for Eltheon based solutions. It samples process metrics, plugin activity, background services, request latency and user statistics, and streams dashboards over SignalR. The package ships with queue-friendly hosted services, SignalR hubs and middleware so that any host can light up the dashboard with minimal wiring.
Key Components
IAdminDashboardManager/AdminDashboardManagercollect metrics from Identity, Plugin and Service components and publish snapshots for Razor pages or APIs.RequestMetricsMiddlewaretracks per-endpoint request volumes and latency without touching application logic.AdminDashboardMetricService : BaseServiceintegrates with the Service feature to periodically refresh metrics and write execution history.- Model types under
v1/Modelsdescribe the payloads used by SignalR hubs and Razor pages, keeping UI projects free from implementation details.
Getting Started
// Program.cs
builder.Services.AddSingleton<IAdminDashboardManager, AdminDashboardManager>();
builder.Services.AddHostedService<AdminDashboardMetricService>();
app.UseMiddleware<RequestMetricsMiddleware>();
Ensure that ServiceManager is registered so AdminDashboardMetricService can be scheduled, and add the SignalR feature to broadcast updates (AdminHub is included via the SignalR package).
Configuration & Dependencies
- Depends on the Plugins, Service and SignalR features to enumerate plugins, coordinate hosted services and push updates to connected clients.
- Uses
GlobalConfigpaths for log, email and plugin directories. CallGlobalConfig.Initializebefore building the host. - Metrics such as CPU and disk usage rely on
System.Managementon Windows and/proc/staton Linux.
Diagnostics
Because RequestMetricsMiddleware keeps global counters, ensure it is registered once per process. The manager writes informational log messages when it is created; enable Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.AdminDashboard logging to trace metric sampling or ingestion issues.