Slide 2 of 8

What problems does Level 3 solve?

The key question

“Why is this specific request slow?”

Level 3 lets you zoom in from service averages into individual requests, then into the specific code causing the problem.

Level 3 zoom in progression showing the journey from service view to request trace to code-level root cause

Problems you can solve at Level 3

ProblemHow Level 3 helps
“This one user’s request failed, why?”Distributed trace shows the full request path
“Which database query is causing latency?”Trace spans reveal slow operations
“Where is time being spent in this request?”Flame graphs show CPU/memory hotspots
“What did this user actually experience?”Frontend traces capture real user sessions

What you get

  • Distributed traces: Follow a request across every service it touches
  • Span details: See exactly what happened at each step
  • Trace-to-logs: Jump from a trace span to the relevant log lines
  • Continuous profiling: Code-level CPU/memory analysis
  • Frontend observability: Real user session replay

Precision is the difference. Moving from “the service is slow” to “this specific database query returned too many rows” separates good observability from great observability.

Script

At Level 2, you know which service is slow. But you’re still looking at averages. The checkout service has high p99 latency. What about this specific user’s request? Why did their checkout take 8 seconds?

That’s what Level 3 answers. You can follow a single request across every service it touches. You can see exactly which database query took 800 milliseconds. You can see where CPU time was spent inside the code. You can even replay what the user actually saw in their browser.

The tools at this level include distributed tracing (following requests across services), continuous profiling (seeing where code spends time at the function level), and frontend observability (capturing real user sessions).

The mental shift is significant. Instead of “the checkout service is slow,” you’re saying “this checkout request is slow because of this specific database query that returned too many rows.” That precision is what separates good observability from great observability.