Dashboard
The Smart Router Dashboard is an optional web UI for observing a running router. It has its own repository and a self-contained stack (router + Prometheus + dashboard), so there is nothing to wire up from the router repo.
What it gives you
- Real-time metrics: chain and upstream health, latency, request volume, error rates (broken down by code, category, and retryability), and the rest of the router metric series, read live from Prometheus. Request counts are client-scoped: one per caller request, not counting cross-validation fan-out or the router's own probes. Panels for lazily-registered families (cache, retries, hedge, cross-validation, WebSocket) start showing data automatically the first time the feature runs.
- Live testing: send test requests to your chains from the browser (HTTP and WebSocket) to confirm a config works end to end. You get copy-paste snippets for every method, and badges on each request for the serving upstream, cache hits, retries, and cross-validation agreement.
- Topology view: chains, upstreams, and endpoints, read from the mounted values file. Upstream URLs are masked to scheme + host.
- Optional authentication: off by default (open, zero-dependency). When you need it, turn on Auth.js sign-in backed by Postgres.
Run it
git clone https://github.com/Magma-Devs/smart-router-dashboard
cd smart-router-dashboard
make up # router + Prometheus + api (:8000) + web (:3000) + logs (Grafana :3001)
make up-cache # same, plus the relay-cache sidecar wired in via --cache-be
| URL | Service |
|---|---|
| http://localhost:3000 | Dashboard UI |
| http://localhost:8000 | Dashboard API (/docs for the OpenAPI UI) |
| http://localhost:9090 | Prometheus |
| http://localhost:3001 | Grafana logs (admin/admin; anonymous viewer enabled) |
| http://localhost:3360 | router ETH1 JSON-RPC (WebSocket at ws://localhost:3360/ws) |
| http://localhost:7779 | router metrics (scraped by Prometheus) |
If a router already runs on the host's :7779, start only the dashboard + Prometheus
with docker compose up (no router profile). The
dashboard README
has the full configuration: authentication, the values file, the logs profile, and how to
point it at an existing router.
How it fits together
The dashboard is not in the request path. It is read-only with respect to traffic: it observes the router through Prometheus and sends test relays. For the raw metric and alerting reference behind the panels, see Observability.