evalgate.agent-run.v2 runs as Claude Code, so a view or report can
compare the two.
1. Run a Collector that writes spans to a file
The destination needs an OTLP/HTTP endpoint that Anthropic can reach over HTTPS. Put an OpenTelemetry Collector with thefile exporter behind it:
2. Add a telemetry destination in the Claude Console
Follow Anthropic’s OpenTelemetry setup and set:- Base URL: your Collector’s HTTPS address. The Console adds
/v1/traces. - Content mode: keep Metadata only, the default. Full content sends messages, system instructions, tool arguments and tool results. EvalGate drops them at import either way, but they still reach your Collector.
- Workspaces: choose Selected and pick only the workspaces that run managed agents. A destination receives every span from the workspaces it covers, including plain Messages API requests.
3. Import the spans
anthropic.session.id).
Delivery is at least once, so a span delivered twice is counted once. Use
--runtime-hosting self_hosted and --sandbox-provider <id> when the session
ran in your own sandbox; EvalGate never infers either from the spans.
What the run contains
These stay
n/a with reason not_exported, never 0: file reads and edits,
subagent tokens and depth, time waiting on a person, prompts and permission
prompts, refusals, compactions and the 5-minute and 1-hour cache-write split.
Outcome-evaluation (grader) tokens are not counted yet, and the grader’s
verdict does not set the run’s outcome.
Spans without a session, such as anthropic.messages.create from the
Messages API, are counted as ignored and never become runs. The organization
id is kept only as a salted digest. user.id, the workspace id, agent names
and descriptions, MCP server names and URLs are dropped.
Every number is self-reported by Anthropic’s telemetry and is not verified
against billing data. To compare runs, continue with
cost of quality for coding agents.