@page "/hosts"
@* Akka cluster topology: each member's NodeId (host:port), roles, leader status. v2 reshapes
v1's "driver host" page — there are no per-driver host rows yet (driver-instance child actors
land with F7). For now this is the cluster-membership view; expand to per-driver rows when
DriverHostActor starts spawning DriverInstanceActor children. *@
@attribute [Microsoft.AspNetCore.Authorization.Authorize]
@rendermode RenderMode.InteractiveServer
@using Akka.Actor
@using Akka.Cluster
@inject ActorSystem ActorSystem
@implements IDisposable
Cluster hosts
Auto-refresh every @RefreshIntervalSeconds s. Last updated: @(_lastRefreshUtc?.ToString("HH:mm:ss 'UTC'") ?? "—")
Each row is one Akka cluster member identified by host:port. Roles
drive which actors run on which node — admin nodes host the
control-plane singletons, driver nodes host the per-node runtime
actors. The leader columns identify which member currently owns each role's singletons.
@if (_rows is null)
{
Loading…
}
else if (_rows.Count == 0)
{
No cluster members visible. The local node may still be joining.
}
else
{
Members
@_rows.Count
Up
@_rows.Count(r => r.Status == "Up")
Joining/Leaving
@_rows.Count(r => r.Status is "Joining" or "Leaving" or "Exiting")