46 lines
2.2 KiB
Markdown
46 lines
2.2 KiB
Markdown
# dashboard
|
|
|
|
Datastream-only HTTP dashboard for visualizing swactor-derived telemetry in a browser. The dashboard consumes folded datastream records and serves live pages over HTTP/SSE.
|
|
|
|
## Features
|
|
|
|
| Feature | Default | Description |
|
|
|---------|---------|-------------|
|
|
| `distribution` | yes | `/distribution` page with SWIM membership, gossip directory routes, peer auth, and location cache data derived from datastream frames |
|
|
| Fleet view | yes | `/vastai` page showing nodes folded by `datastream_source::FleetView` |
|
|
|
|
## HTTP Dashboard
|
|
|
|
The dashboard is embedded by an application that owns a datastream sink. The
|
|
sink folds delivered frames through `datastream_source::FleetView`, then pushes
|
|
the resulting stats, activity lines, and cache-backed plugin JSON into the
|
|
dashboard handle.
|
|
|
|
Pages:
|
|
- `http://localhost:9090/` — live overview from the selected datastream node
|
|
- `http://localhost:9090/actors` — actor table reconstructed from actor telemetry records
|
|
- `http://localhost:9090/plugin/distribution` — SWIM membership, gossip directory routes, peer auth, and cache entries
|
|
- `http://localhost:9090/plugin/vastai` — fleet/node view fed by the shared fleet cache
|
|
|
|
The dashboard model is folded by `datastream_source::FleetView`. Producers
|
|
publish telemetry records to datastream channels; the dashboard sink folds those
|
|
records into cached JSON, pushes activity messages, and updates the HTTP/SSE
|
|
views.
|
|
|
|
## Public API
|
|
|
|
Embed the dashboard by constructing `DashboardConfig` and calling
|
|
`start_dashboard(config)`. The returned handle owns the HTTP server state and
|
|
supports externally pushed stats, activity messages, history access, plugin
|
|
registration, landing page overrides, extra routers, and shutdown.
|
|
|
|
Plugins are the extension boundary. New dashboard surfaces should register a
|
|
`DashboardPlugin` or use a cache-backed plugin such as
|
|
`fleet_cache_plugin(cache)` / `distribution_cache_plugin(cache)`, then feed it
|
|
from datastream-derived JSON caches.
|
|
|
|
## Pipeline app
|
|
|
|
`apps/pipeline-parallel-inference` enables the dashboard with `PP_DASHBOARD=1`.
|
|
Its orchestrator hosts the HTTP server, spawns the `datastream-sink` actor, and
|
|
feeds every dashboard view from `FleetView` updates.
|