Traces
Browse traces and the query bar
Narrow an Environment's traces with the query bar, facets and time range, read each row's flags and score, and open a trace by id.
The trace list shows the traces of the Environment selected in the top bar, newest first. Switching Environments reloads the list and keeps your filters.
What the list shows
Six tabs run along the top: Traces, Sessions, Agents, Errors, Logs and Services. Users and Topics have their own pages, at …/traces/users and …/traces/topics, with no tab. Below the tabs are the search field, the time range (24 hours by default) and the facets.
The columns are Time, Operation, Service, Status and Latency, 50 rows a page. Flags appear when the trace service sent any, and Score when a loaded trace has an evaluation. There are no model, token or cost columns, and no column picker.
Ticking rows opens a selection bar with Evaluate, Add to dataset, Annotate, Export, Copy ids and Clear. Annotate adds the traces to a review queue. Export downloads summaries; see Export traces.
The query bar
Type in Search traces to filter. The text goes into the URL after a 350 ms pause, so a link reproduces the list.
| Token | Matches | Notes |
|---|---|---|
status: | the root span status, exact (ERROR, OK) | any case; also a facet |
model: provider: service: | part of the trace's model, provider or service name | also facets |
session: user: | part of the session or user id | shown as a removable chip; the Users view sets the same filter |
method: | operations that start with an HTTP verb, as in GET /users | separate several verbs with commas |
latency> tokens> spans> | a number, with >, >=, <, <=, or : for equals | latency in ms; tokens are input plus output; spans is the span count |
| free text | operation, attributes, prompt, completion, model, provider, trace id and status message | unknown field names are searched as text |
The API also filters by exact operation, appVersion, environment, agentVersion and agentName, which the Services, release comparison and Agents views set for you. Click the Status or Latency header to sort; the API can also sort by tokens.
Facets cover status, method, provider, model, service, app version, environment, agent version and coding agent. Counts are self-excluding: choosing one status still shows the counts of the others.
Flags and the score column
The trace service computes flags from the whole span tree, to show which rows are worth opening. A row shows two flags, then +n.
| Flag | Means |
|---|---|
| error | a span ended in ERROR; shown only when the trace status is not ERROR |
| empty reply | a model returned an empty completion without erroring |
| truncated | a provider stopped at its token limit (finish reason length or max_tokens) |
| tool loop | the same tool ran with identical arguments 3 or more times |
| model swapped | more than one model answered in the trace |
| N subagents | how many subagents ran |
Evaluations are stored apart from traces, and the list joins them to its rows in the browser. A score cell shows a percentage colored by pass or fail, "no verdict" (dashed) or "judge error" (never drawn as zero). A trace scored in parts shows passed out of total.
A status the instrumentation never set (UNSET in OpenTelemetry, meaning no error was recorded) shows a dash.
Not every trace makes a model call. Wherever model figures appear, a trace without model calls is left blank, never $0. That covers the home page's recent traces, Topics, session turns, Services, Users and the trace header. A dash means a model call happened but the value is unknown, such as an unpriced model's cost.
Open a trace by id
Paste the id into Search traces. Text of 16 or more hex characters searches nothing and offers Open trace. The command palette (⌘K on a Mac, Ctrl+K elsewhere) also opens a pasted 16- or 32-character id.
Both open the trace in the selected Environment only. A trace id is unique only inside an Environment, so switch to the right one first. The palette also finds pages and the datasets, runs and evaluators this browser session has loaded. It does not search the server.
Limitations
- Load more appears only when the range starts less than 23 hours ago and there is no filter or sort. Any other list, the default 24 hours included, stops at the first 100 matching traces, so narrow the range to see more.
- Free text alone does not count as a filter there, and it is ignored. Add another filter or choose a longer range to search by text.
- There is no score sort or score filter.
- The browser reads traces from the trace service with the Environment key. There is no proxy for trace reads yet.
- Spans with content capture off are marked, but you cannot filter or count them:
evalkit.content_captured=falsehas no facet.