Skip to main content
Traffic is the request-level record of what Relay observed or executed.

Traffic records

Each record can include:
  • source and status
  • requested and resolved models
  • provider
  • input and output tokens
  • tokens saved
  • cost and latency
  • trace and span identifiers
  • decision identifier and routing reason
  • custom-router identity
  • attached signals
Shadow requests are marked separately from the live request. Open a row to inspect the sanitized request, response, or upstream error data available for that record. Filter traffic by source, status, signal, model, or time window. Summary views aggregate requests, errors, tokens, spend, models, sources, and time series.

Agent runs

Relay groups related multi-turn traffic into runs. The current implementation uses message-prefix continuity across a bounded window of recent rows; it does not require an application-supplied session identifier. Each run includes its ordered traffic rows, request count, start and end time, model, and preview. Because grouping is inferred, inspect the underlying rows when exact conversation boundaries matter.

Signals

Signals label traffic with reusable workload or policy concepts. A signal has a name, slug, description, color, enabled state, and predicate. Predicates can combine conditions over supported traffic fields. Use signals to create stable cohorts such as coding work, high-cost requests, failures, or a business-specific task.
1

Define the signal

Give it a narrow meaning that another operator can recognize.
2

Set the predicate

Match durable request properties rather than one-off text where possible.
3

Classify traffic

Run classification across the project and inspect how many records matched.
4

Use the cohort

Filter Traffic or scope reports and evaluations to the signal.

Compare outcomes

Use traffic cohorts for replay, reports, comparison, and quality evaluation.