Skip to main content

Endpoints

Inbound HTTP requests made to your Warp-exposed handlers. The outbound mirror is Adapters.

It observes only Warp HTTP endpoints (handlers exposed via MapWarpHttp) — never your own controllers, the dashboard, health checks or static files. Identity is the HTTP method plus the route template (GET /orders/{id}), so a path parameter never inflates the row count.

The list gives Calls, Error %, Avg latency and a Health pill per route, over a chart of all endpoints combined.

Detail page

Beyond average latency the detail page reports p90 / p95 / p99, computed from a fixed-bucket histogram folded through the same CounterStatistic pipeline as the counts — so they are exact over all calls and survive log deletion, not sampled from whatever rows remain.

A callers table breaks the same numbers down by group (channel, client, tenant — whatever your GroupSelector returns), with each caller's last failure.

Call detail

An individual call shows its captured request and response (headers redacted through the denylist, bodies truncated), any enrichment tags, and — the useful part — Related jobs: everything enqueued during that request, reached by shared trace id, with a link into the full trace.

The reverse direction works too. A job spawned inside a request shows an Origin card on its detail page naming the request and the user, linking back to the call above:

What counts as an error

Failed means the final wire status was 5xx, or an exception escaped after the response started. A 4xx is a client error and stays out of the error rate, so the number keeps meaning "we broke it". 4xx responses still form issues, filtered out of that view by default.

The page appears once AddEndpointObservability() is registered. The query service itself is registered by AddWarp, so a dashboard-only process can serve the data without running the middleware.

See also