01
Charts drop numbers to fit a screen. Agents want the full table.
Perspective · Observability
The user hasn't changed. The question hasn't changed. What changed is how the question gets answered. A human clicks through a dashboard. An agent fans out into hundreds of retrievals. Two very different workloads on the same backend.
The thesis
The endpoints of the flow are unchanged. The middle got replaced by a computational process, and the backend has to hold up under it.
Interactive · today
Computational · now
The short version
01
Charts drop numbers to fit a screen. Agents want the full table.
02
One agent session runs 100+ queries. The concurrency floor moved 100×.
03
Three seconds per query is fine for a human. In a 20-step loop, it's a minute of waiting.
04
Sampling drops 90% of traces. Agents ask for specific ones. Dropped traces come back as confident hallucinations.
05
Per-seat pricing breaks with agents. They fan out, run in parallel, and clone cheap.
06
The bill has to explain itself. Every session should tie back to a shipped PR.
01 · The load shape changed
Query language, sampling, cardinality caps, TTLs all exist to make dashboards feel fast for a person scanning them. Agents don't scan. A five-minute investigation might chain a hundred tool calls: discover_service_graph, list_services, execute_metrics_query fifteen times, execute_logs_query on the outliers, then a second pass when the first didn't fit. The old stack has the raw throughput. The shape of the load is what breaks it.
02 · Structured over rendered
A chart drops numbers to fit a screen. The human eye fills in the rest. LLMs cannot. Feed a model a screenshot of a P95 chart, ask if the canary regressed, and you get a plausible guess. Feed it the same data as a structured payload with baseline, current, canary, deltas, and cited traces, and the answer comes back with citations.
03 · P50 is the new p95
For a human, three seconds is where loading turns slow. In a 20-step agent loop, three seconds per query is a full minute before the agent can think. Alerts win the race. A dashboard tuned for the p95 does not help. Agent loops need columnar storage, tight indexes, and compute close to the data. Sub-second has to be the default return.
Knock-on effects
04 · Sampling
Legacy stacks sampled hard because humans couldn't read every log. Agents read specifically. They ask for the three traces from the deploy window with DEADLINE_EXCEEDED on cohort=canary. Drop those three, and the agent writes a confident, wrong summary. Full fidelity on cheap object storage keeps every trace available when a specific question asks for it.
05 · Pricing
Seat pricing assumed one human per license. Agents have sessions, token budgets, and siblings. Ten engineers on Claude Code can spin up a hundred concurrent investigations without hiring anyone. Seats become a growth tax with no ceiling. The moment agents are useful, the bill goes non-linear against the same headcount.
06 · Accountability
A faster black box is still a black box. Managers keep asking what the spend produced. Every session has to tie back to a shipped piece of work with explicit confidence. Merged PRs are outcomes. Token counts are consumption metrics.
07 · Properties
All six have to hold. A fast API that returns three-second calls makes the loop uneconomical. If the engine only returns PNGs, the model can't cite anything. Full fidelity in a vendor silo means you can query it but never explain the bill. Miss any one, and the cost per useful answer climbs until someone shuts the pilot down.
Where Cardinal sits
The MCP gateway and in-agent plugins expose typed tool calls alongside the UI. Lakerunner keeps full-fidelity telemetry on object storage in your own cloud. Agent Outcomes ties every observed session back to the PR it produced, putting spend and delivery on the same axis.