Session 15 · costhelm v4 · routing, economics, observability

What the gateway is doing, and what it is costing

Every number on this page is read live from the gateway's own API. Nothing here is seeded, sampled or modelled: a panel with no data says so rather than showing a plausible figure.

connecting… traces — content capture — Jaeger UI v3 dashboard

Provider health

/v1/status · /v1/providers · /v1/capabilities

Live RateState per provider instance: what it has spent of its minute, day and token-per-minute allowance, and whether anything is holding it back right now.

Routing decisions

/v1/calls · /v1/routers

The ledger, read as a routing log: which role was asked for, which tier the classifier chose, whether policy clamped it, and which provider actually answered.

Cost

/v1/cost/by_principal · /v1/status

The same spend rolled up five ways. Tenant, project, user, agent and session are columns in the ledger, so attribution is a query rather than an estimate.

Budget

/v1/budget · /v1/budget/{principal} · /v1/calls

A ceiling is only real if breaching it refuses the call. Refusals are counted here, and a refused request never reached a provider.

Cache

/v1/cache/stats

Dollars saved is the sum of what the original calls actually cost, so it is measured. The closest rejected match is the honest counterweight to the hit rate.

Traces

/v1/traces/recent

Every row is a real trace id, held both here and in the trace backend. Click one for the inline waterfall; click the id to open the full trace in Jaeger.

Trace waterfall

/v1/traces/{id}

Span hierarchy with real start offsets and durations.

Raw

the response behind a panel

The dashboard renders whatever the API returns. This is that, unedited.

costhelm v4 · one page, no build step, no external dependency but a webfont. Served by the gateway at /dashboard.