Skip to content

Dashboards

Both dashboards are single HTML files served by the gateway itself — no build step, no separate frontend deployment, work offline.

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.

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).

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.