Dashboards
Both dashboards are single HTML files served by the gateway itself — no build step, no separate frontend deployment, work offline.
/ — operations
Section titled “/ — operations”The live state of the machine: registered providers with their models and rate-window usage (RPM/RPD/TPM, cooldowns, backoff reasons), the router pool, embedders, today’s call totals, and a recent-calls table with errors and failover attempts inline. Plus a quick-test form for firing a chat call from the browser.
/dashboard — economics & observability
Section titled “/dashboard — economics & observability”The money view: spend by principal dimension, budget ceilings with remaining allowance, cache statistics (hits, similarity sweep, tokens and dollars saved), the recent-trace list with per-span waterfalls, and the refusal log — every 402 with its envelope intact.
Traces are served from the gateway’s own in-process ring, so the page works
even when no collector is configured; when one is, each row deep-links into
the real Jaeger waterfall (COSTHELM_TRACE_UI).
With auth enabled
Section titled “With auth enabled”When COSTHELM_API_KEYS is set, the pages themselves stay open but their
/v1/* reads need a key. Both pages attach one from localStorage and
prompt once on the first 401 — paste a key and the page reloads. To clear
it: localStorage.removeItem("costhelm_api_key") in the browser console.
A self-contained reference page: provider overview, .env surface, API
summary, and how failover works — useful when the gateway is running
somewhere the docs site isn’t reachable.