MediumBuilding production dashboards by talking to Axiom through MCP | by Aman Srivastava | Oct, 2026 | Medium
Sitemap
Aman Srivastava

Aman Srivastava

Founding Software Engineer at Fixit AI. I write about backend systems, observability and agentic AI, and what breaks when they run in production.

Building production dashboards by talking to Axiom through MCP

How I stopped hand-clicking charts, let an AI assistant write the APL queries and call createDashboard, and ended up with error-rate and latency dashboards across four services.

3 min readOct 29, 2026

--

Raw trace data is not observability

When you run software for other people, it constantly emits small records of what it is doing: this request took 800 milliseconds, this one failed, this one called the database twice. That stream is telemetry, and observability is the practice of answering questions about your system from it. We store ours in Axiom.

A pile of records is not an answer, though. You can query it, but every question means writing a query by hand in APL, Axiom’s query language. A dashboard is the opposite: a set of always-on charts that answer the important questions at a glance.

Think of a shoebox of receipts. The answer to “which supplier costs us the most in late deliveries?” is technically in there, but finding it means emptying the box and sorting by hand every time. A dashboard is the monthly summary taped to the wall.

Building dashboards by hand was a day of clicking

I needed those wall charts for our production system. Building them the normal way meant the better part of a day in the UI: pick a chart type, write the query, fix the time range, name the axes, repeat. It was tedious enough that I kept putting it off, which is the real risk. The dashboards you never build are the ones you wish you had at 2 a.m. during an incident.

Using an MCP server from the coding environment

Instead, I used an MCP server inside my coding environment. MCP is a standard way to give an AI assistant a set of real controls on another tool, not screenshots and not copy-paste, but the tool’s actual operations.

It is like hiring an assistant who is fluent in a filing system you only half speak. Before, I operated every drawer myself. With MCP, I say what I want pulled and the assistant does it.

Get Aman Srivastava’s stories in your inbox

Join Medium for free to get updates from this writer.

So I described what I wanted in plain English. The AI wrote the APL queries, built the chart specifications and called Axiom’s own createDashboard operation directly. I reviewed what it produced, asked for tweaks, and it patched them. No switching windows, no pasting query strings back and forth.

Two dashboards in production

  • Error rates across all four services, filterable by service and operation, refreshing every 60 seconds.
  • Response-time percentiles for every service and operation, over a rolling 24 hours: p50 (the median, the typical request), p95 (95% of requests were faster than this) and p99 (99% were faster, so it shows the slow tail).
Press enter or click to view image in full size
An Axiom dashboard from our platform, screenshot of 24 Apr 2026. Trace IDs, service names, the company name and endpoint names are blacked out and the browser window is cropped. This is not the final error-rate dashboard described here.
Press enter or click to view image in full size
An Axiom latency dashboard, screenshot of 24 Apr 2026, an earlier version than the final one described here. Trace IDs, service names, the company name and endpoint names are blacked out. The "No data" panel is as it appeared that day.

The error-rate dashboard went in without problems. The latency dashboard took three rounds: the first version bucketed time incorrectly, the second broke on empty datasets, and the third worked. I read the JSON, asked for changes, and the assistant patched it. Each round was a conversation, not a rebuild.

When asking is cheap, you ask for more

Once asking was cheap, I started requesting charts I would never have built by hand: which service contributes most to the slowest requests, and which operations have a p99 more than twice their p95. Each would have taken about 30 minutes to express in APL. Answered this way, they took seconds.

That is the bigger lesson, beyond speed. When the effort of building something drops far enough, “is this worth building?” starts coming back yes far more often. The tool did not only make me faster. It lowered the bar until I actually did the thing.

I write about building backend and AI systems in production. Connect with me on LinkedIn or see my work on my portfolio.

--

--

Aman Srivastava
Aman Srivastava

Founding Software Engineer at Fixit AI. I write about backend systems, observability and agentic AI, and what breaks when they run in production.