Usage & dashboards
Slice telemetry by any dimension your app emits in the Usage explorer, then save a dashboard tailored to your business — built by you, or authored by your coding agent over MCP.
Observe answers “what happened.” Usage answers “how is my product being used,” sliced by the dimensions that matter to your business — see custom dimensions for how attributes become dimensions.
Usage explorer
Under Observe → Usage, pick a dimension and see it three ways at once:
- A breakdown ranking its values by traffic, cost and errors.
- The trend over time, and the latency percentiles, for the current slice.
The dimension picker lists the built-in dimensions (model, provider, status, tool,
agent, app, user) alongside the custom ones your app has emitted. Select a value on
a custom dimension to scope the trend and latency to just that slice — for example
participant_role = candidate.
Dashboards
A dashboard is a saved JSON spec of widgets, and each widget binds directly to the analytics API:
kpi/timeseries— a metric (calls, errors, cost, tokens, latency, ttft)breakdown— a dimension (includingtagwith atagKey)latency— percentiles for the scope- every widget takes an optional
scope(source, model, provider, app, andfilterTagKey/filterTagValue)
Because a dashboard is data rather than code, one generic renderer draws any spec.
Manage them under Observe → Dashboards, or over the API:
GET/POST/PUT/DELETE /dashboards.
Agent-authored dashboards
The same properties make dashboards ideal for a coding agent to author. An agent
with the axonpush MCP attached can read your backend, discover which dimensions
exist (analytics_dimensions), stamp any high-value ones that are missing, and
save a dashboard tailored to your domain — all as tool calls, no bespoke UI code.
If your agent supports skills, run /axonpush-tailor-dashboard (from
npx skills add axonpush/skills): it does exactly this end to end.
Related
- Custom dimensions, the model this is built on
- Observe, traces, logs and the core analytics
- Analytics API · Dashboards API