axonpush
Dashboard

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 (including tag with a tagKey)
  • latency — percentiles for the scope
  • every widget takes an optional scope (source, model, provider, app, and filterTagKey/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.