Reading a trace
The Traces page lists distributed traces collected from OTLP-instrumented services. Each trace is a single request's path through your system.
Filters (top of page)
| Filter | Notes | ||||
|---|---|---|---|---|---|
| Service | Dropdown of services that have reported traces. Default All services. | ||||
| Span name | Free-text match against the root span name. | ||||
| Status | Dropdown: All, Ok, Error, Unset. | ||||
| Min duration (ms) | Numeric input. Set to e.g. 100 to find slow traces only. | ||||
| Time picker | Presets `15m | 1h | 6h | 24h | 7d` plus explicit From/To datetime inputs. |
| Refresh | Top-right. Re-runs the search. |
Source scope
The page respects the source switcher in the left rail. With one source selected, you only see traces from that source. With All sources, you see every trace across the org.
Results table
When traces match, the table shows:
| Column | Means |
|---|---|
| Trace ID | Unique identifier. Click to open the trace detail. |
| Service | Service that started the root span (the OTLP service.name). |
| Root Span | Operation name of the root span (e.g., POST /api/v1/login). |
| Start | When the trace began, in your local timezone. |
| Duration | The trace's wall-clock time (root span start → finish), in milliseconds. In SQL the span column is duration_ns — nanoseconds (duration_ns/1e6 for ms). |
| Spans | Span count. |
| Status | Pill: OK (green), ERROR, or UNSET. |
When no traces match: No traces found.
Trace detail
Clicking a Trace ID opens /traces/<id>:
- Header: "Trace Detail" + the full trace ID.
- Back arrow top-left to return to the list.
- Top-right summary: span count + total duration (e.g.
2 spans250.00ms). - Span tree: three columns —
Span | Service | Timeline.
- The root span is at the top. Children are indented underneath.
- Each span row shows the span name, its service, and a horizontal timeline bar showing where the span sits within the trace's total duration. The bar's width is proportional to span duration; child spans are positioned at their offset within the parent.
- Each span shows its individual duration on the right edge of its timeline bar.
- The chevron at the start of each span row collapses/expands child spans.
Click any span row. A Span Detail panel slides in from the right with:
- Name — the span's operation name.
- Service — service that emitted the span.
- Kind — span kind (Server, Client, Internal, Producer, Consumer).
- Status —
OK/ERROR/UNSET, with the optional status message below. - Duration — span wall-clock time.
- Trace ID, Span ID, Parent Span ID — full identifiers.
- Start / End — ISO timestamps.
- View Logs for this span — deep-link to Log Explorer scoped to the trace ID and time window.
- View Metrics for `<service>` — deep-link to Metrics scoped to the service.
- Attributes — full key/value table of every OTLP attribute on the span (
http.method,db.statement, custom tags, etc.). - Events — JSON-formatted span events, when present.
Close the panel with the X top-right or click another row to compare.
Sending traces
Set up OpenTelemetry in your service:
- Set
OTEL_SERVICE_NAME(this is what shows in the Service column). - Point the OTLP exporter at the agent on
4317(gRPC) or4318(HTTP/JSON) on the agent's host. - The agent forwards spans to the server, where they appear here within seconds.
Each source has its own API key — agents and exporters authenticate with X-API-Key (or Authorization: Bearer ...) in the request headers.
Deep-link from logs
If a log line carries a trace_id field, the Log Explorer renders it as a clickable link that opens the trace here.