All articles

Principles

The APM Dashboard Is Not the Investigation

Dashboards are good at showing that production changed. An APM workflow earns its keep by preserving scope while it takes you from a bad percentile to the request that explains it.

· Vight team · 6 min read

APM principles

A chart is a clue, not a conclusion.

Most APM home screens are optimized to look complete. They show throughput, error rate, latency, a service map, and enough color to make the system feel knowable at a glance.

That overview is useful until something breaks. Then the job changes. You no longer need a summary of the whole estate; you need a defensible path from one customer-visible symptom to the code, dependency, runtime condition, or release that caused it.

The difference between a dashboard and an investigation is continuity. Every step should preserve the same service, environment, route, version, and time window until the evidence gives you a reason to change one of them.

01

Begin with a population, not an anecdote

A single slow trace is vivid, but it may be a cold start, a one-off retry, or a customer request that nobody else makes. Before opening trace detail, establish the shape of the regression: which route moved, how many requests were affected, and whether the median, the tail, or both changed.

Percentiles become useful when they help you select evidence. If p95 moved while p50 stayed flat, inspect several traces from the slow tail and compare them with normal requests from the same route. The contrast matters more than the absolute duration of one example.

02

Change the signal without changing the question

Move from the endpoint chart into traces with its filters intact. From a trace, follow the longest or failing span. Then inspect logs, runtime pressure, dependencies, and deploy markers from that same request or time window.

Every context reset creates another chance to invent a story. A global log search may find an alarming exception from a different service. A fleet-wide CPU spike may be real but unrelated. Scope is what turns correlated timestamps into evidence.

Same target

Keep service, route, environment, version, and deployment identity aligned.

Same window

Compare signals from the incident window before expanding into historical context.

Same question

Ask which observation would strengthen or weaken the current explanation.

03

Treat unowned time as evidence

Trace waterfalls are especially valuable when they do not contain an obvious long child span. If a server span lasts two seconds while its database and HTTP children account for only 200 milliseconds, the remaining time is not empty. It points toward application work, queueing, locks, garbage collection, thread-pool pressure, or missing instrumentation.

Good APM makes that gap visible and gives you adjacent signals to test it. It should not hide unattributed time behind a health score or pretend that every latency problem belongs to the slowest named dependency.

04

End with a claim another engineer can test

The output of an investigation is not a collection of screenshots. It is a falsifiable claim: which requests were affected, what consumed the time or caused the failure, what changed, and what evidence rules out the nearest alternatives.

That claim gives the fix an acceptance test. If a database pool was exhausted after a release, the next comparison should show the queueing disappear for the same route and workload. APM is finished only when it helps close that loop.

A dashboard tells you where to look. An investigation keeps the question intact long enough for the system to answer it.