Traces
Uptrace collects distributed traces and organizes them into spans — individual units of work representing a single operation. The Traces section provides three views for navigating from aggregated operation metrics down to individual requests and their full execution path across services.
Groups
The default view groups traces by operation name. Each row represents a unique operation with aggregated metrics: request rate, p50/p90/p99 latency, error rate, and sparklines.
Traces are filterable by any indexed attribute. The Show Filters panel groups attributes by name and lists their values with span counts — for example _status_code with values error: 31, ok: 2.05k, or service_name with all active services and their counts. Values are selectable via checkboxes.
Available aggregations include perMin(count()) for request rate and p99(_dur_ms) for latency percentiles. Sparklines show how aggregated values change over time.
Traces
The Traces tab shows individual trace records with a volume histogram at the top. Each row represents a single trace with its root operation, services involved, timestamp, and duration.
Timeseries
The Timeseries tab displays a grid of charts — one per aggregation — showing how all operation groups behave over time. Each line represents a separate operation group.
Detail panel
Selecting an operation in the Trace view opens a detail panel. Some tabs appear only when the span has the data for them.
Attrs — key-value attributes of the selected span with type annotations (::str, ::int). Attributes are filterable by key name and grouped by category: host, os, otel, otel_library, product, service, telemetry, telemetry_sdk.
Database query — for a database span, the formatted query from db.statement or db.query.text. The tab carries the attribute's name.
Stacktrace — the exception stack trace of the span, or of its first exception record.
Logs & Errors, Events, Links — the logs and errors, span events, and span links recorded on this span. Each tab shows its count.
Breadcrumbs — the Sentry breadcrumbs that led up to an error, as a timeline.
Compare — the span's operation in the current time range against the same range an hour, a day, or a week earlier: rate, error rate, P50, P90, P99, and max duration, with a chart that marks this span.
Explore — the operation's slowest spans, failed spans, status messages, and the traces it appears in, plus a heatmap, a histogram, and a status-code chart of all its spans. Each list opens in the Explorer.
Merged spans — appears when the waterfall folds several similar spans into one row, and lists them.
JSON — raw span data exactly as collected.
Tags — selects dashboard tags. For each selected tag, the panel adds a tab with the metrics of the dashboards that carry the tag and match the span's attributes, such as its host_name.
Trace waterfall
The View Trace button opens the full trace view showing how a request flows across services.
At the top, a color-coded service breakdown bar shows the share of trace time per service (e.g. httpserver:frontend, httpclient:load-generator). The waterfall shows all spans as horizontal bars with their Operation name and Timeline.
Select services and Select systems dropdowns narrow the visible spans. The LOGS & ERRORS tab lists all logs and errors recorded within this trace.
Span detail in waterfall
Clicking a span in the waterfall opens a detail panel with the full context of that specific operation — attributes, aggregated stats, raw data, and related tracing metadata — making it possible to identify the exact point of failure and its cause.
You can alert on span data — query duration, error rate, and failed request counts — using metric monitors.