Why Dynatrace's PurePath Changes How You Debug Microservice Latency
Dynatrace OneAgent's PurePath auto-instrumentation stitches requests across services without code changes. Here's how it helps debug latency, plus the overhead and coverage trade-offs.
25 Sept 2025, 13:50 UTC

A p99 latency spike on your checkout endpoint is easy to detect and miserable to explain. The logs from six services each look healthy. Metrics show the slowness but not where it lives. The usual next step — adding timing spans by hand to every service in the call chain — is exactly the work Dynatrace's OneAgent tries to eliminate, and its PurePath trace model is the reason the approach holds up in practice.
The problem with manual instrumentation
SDK-based tracing (OpenTelemetry, vendor agents you wire into code) gives you full control, but someone has to instrument every service, keep the instrumentation current as frameworks change, and remember the queue consumer nobody owns anymore. In a real microservice estate, coverage is always partial, and the gap is usually where the incident is.
OneAgent takes the opposite bet: install one agent per host, and it auto-discovers supported processes — JVMs, .NET runtimes, Node.js, Go services, web servers, database clients — and injects tracing without code changes. Coverage stops depending on whether each team did the work.
What a PurePath actually gives you
PurePath is Dynatrace's end-to-end trace model. A single request is stitched together across services, message queues, and database calls using propagated context, so you get one connected path rather than fragments you correlate by timestamp. Because OneAgent also collects host metrics, process data, and topology (feeding the Smartscape dependency map), the trace arrives pre-correlated with infrastructure context. The Davis AI engine then groups related anomalies into a single problem card with a suspected root cause, instead of firing one alert per metric threshold.
Worked example: hunting a p99 spike
Say your POST /checkout endpoint jumps from 300ms to 2.4s at p99. The workflow in the Dynatrace UI (no CLI required):
- Open the service view for the API and filter PurePaths for the
/checkoutendpoint during the spike window. - Sort by response time and open one of the slowest traces.
- Read the trace top-down: each hop shows its own contribution to total time.
A typical finding: the API itself takes 40ms, the inventory service takes 80ms, and one SQL statement against the orders database takes 2.1s — a missing index after a schema deploy, not "the network." That hop-by-hop decomposition is the whole value proposition: you go from "checkout is slow" to a specific statement in minutes, without anyone having pre-instrumented that query.
To validate the core claim yourself before trusting it: install OneAgent on a test host running a small multi-service demo app, generate traffic, and confirm a single request appears as one connected PurePath spanning every service. If a hop shows up as an opaque gap, that framework likely isn't in the supported-technologies matrix — check the current Dynatrace documentation for your exact framework versions.
The trade-offs you should price in
Auto-instrumentation is not free, and three costs deserve honest treatment:
- Overhead. Agent-based capture adds CPU and latency, which matters on high-throughput services. Sampling and capture-rate settings exist, but validate defaults under load on staging before broad rollout — compare response times with the agent enabled versus disabled using a simple load test.
- Uneven depth. Mainstream frameworks get method-level and database-statement visibility; niche or custom libraries can appear as gaps in the trace unless you add custom instrumentation. Auto-discovery shrinks the coverage problem, it doesn't abolish it.
- Data sensitivity. Deep visibility into SQL statements or message payloads can capture personal data. Configure data-masking rules before enabling deep capture in regulated environments.
Also note that feature names, licensing models, and the supported-technology list change over time — treat anything version-specific here as a starting point and confirm against current Dynatrace docs.
Where to start
If your team's debugging bottleneck is the gap between "something is slow" and "here is the exact call responsible," agent-based auto-instrumentation is worth a staging trial. Deploy OneAgent on one non-production host, run a load test to measure overhead, trigger a deliberate failure (stop a dependency) to see whether Davis groups the symptoms into one problem, and check trace completeness for your least-common framework. That afternoon of testing tells you more than any feature matrix.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.