dt-obs-tracing

Analyze distributed traces and spans in Dynatrace Grail using DQL queries.

Updated Dec 12, 2025
One-click install
npx skills add https://github.com/ricardojjulia/ESACompanion --skill dt-obs-tracing-ricardojjulia
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: dt-obs-tracing
Source: https://github.com/ricardojjulia/ESACompanion/tree/main/.github/skills/dt-obs-tracing
Command: npx skills add https://github.com/ricardojjulia/ESACompanion --skill dt-obs-tracing-ricardojjulia

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Investigating slow requests, failed spans, and service dependencies in distributed systems requires deep knowledge of trace data structures and query syntax. This Skill provides ready-to-use DQL query patterns for analyzing spans, traces, and request flows in Dynatrace Grail, eliminating guesswork when diagnosing performance bottlenecks and failures. ## Core Features & Use Cases - Performance Analysis: Find slow requests, compute p95/p99 latency percentiles by endpoint, and build response-time timeseries from span data. - Failure Investigation: Break down failures by reason (HTTP codes, gRPC status, exceptions), analyze exception stack traces, and list recent failed requests with trace exemplars. - Service Dependency Mapping: Trace service-to-service communication, outgoing HTTP calls, database queries, messaging flows (Kafka, RabbitMQ, SQS), RPC/gRPC calls, and serverless function invocations. - Use Case: When p99 latency spikes on a checkout endpoint, use the slow-trace detection pattern to find requests over 5 seconds, then drill into database spans with extrapolated counts to identify the slow query causing the bottleneck. ## Quick Start Ask the AI to find all traces with requests slower than 5 seconds in the last 2 hours and show the failing endpoints with example trace IDs.

Frequently Asked Questions about dt-obs-tracing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find slow requests in Dynatrace traces?▼

Fetch spans filtered by request.is_root_span == true and duration greater than a threshold like 5s, then sort by duration descending. Include trace.id, endpoint.name, and dt.service.name fields so you can drill into individual slow traces.

How to analyze failed spans and exceptions with DQL?▼

Filter spans with request.is_failed == true and expand dt.failure_detection.results to break down failures by reason such as http_code, grpc_code, or exception. Exceptions are stored in span.events and can be aggregated by exception.type with example trace IDs.

Why do my span counts not match actual request volume?▼

Span counts differ from real operation counts due to aggregation, adaptive traffic management, and read sampling. Calculate a multiplicity factor from sampling.threshold, aggregation.count, and dt.system.sampling_ratio, then sum it for extrapolated counts.

Can I correlate logs with distributed traces in Dynatrace?▼

Yes, logs enriched with trace_id and span_id can be joined with spans using DQL join or subquery filters. Convert string trace IDs with toUid() before joining, and filter logs early to avoid subquery size limit errors.

What span kinds exist in Dynatrace trace data?▼

Spans have kinds server, client, consumer, producer, and internal. Server spans represent incoming calls, client spans outgoing calls, and consumer/producer spans messaging operations. Filter by span.kind plus attributes like http.request.method or db.system to identify span types.