AnthropicReleases

Illustration: a wooden thread spool, straight-on on black, with one loose thread end hanging beside it.
Illustration

Claude Platform now sends OpenTelemetry traces of your agents

Add one destination in the Claude Console and each Messages API call, Managed Agents turn and tool use shows up in your own observability tool, in beta.

If you run agents on the Claude API, you can now watch every model call and tool use in the observability tool you already use. An org admin adds one destination in the Claude Console to get API and Managed Agents spans. Developers update the Claude SDK and register a tracer provider to get spans from their own code. It's in beta.

What changed#

Anthropic shipped OpenTelemetry export on Oct 14. The release notes say you can now "trace Messages API requests and Claude Managed Agents sessions in your observability backend," and that the Claude SDK emits spans in Python, TypeScript, C#, Go, Java, PHP and Ruby. Claude Code and Cowork could already send traces, and the launch post ties the two together: "If you already send Claude Code or Cowork traces to your observability tool, the agents you build on the Claude Platform can also show up in the same place."

There are two halves, and you want both:

  • API tracing (set up in the Console, admin role) covers each model run inside a request, Managed Agents turns, and server tools the API runs.
  • SDK tracing (set up in code) covers client tools run by the tool runner, tools in a self-hosted sandbox, and other API calls such as file uploads.
  • Set up both and a request's SDK span and API span land in one trace.

Spans follow the OpenTelemetry GenAI conventions. By default they carry metadata only (timing, status, token counts, model, tool names). Switch a destination to Full content to also export prompts, responses, tool inputs and tool results.

Why it matters#

When an agent fails or runs slow, you can now see which step did it next to the rest of your stack, instead of guessing from logs. Anthropic's pitch: "Trusting an agent with more access starts with tracing its model calls, tool use, and MCP server calls." Full content traces also give you real conversations to turn into evals.

How to use it#

  1. In the Console, open your organization's OpenTelemetry settings page and click Add destination. Pick your Provider (or Custom), enter the OTLP endpoint URL without /v1/traces, add your platform's API key as a request header, then choose a content mode and workspaces.
  2. Click Test in the destination's More actions menu and check that the anthropic.test span arrives.
  3. Send a request from playground in a covered workspace. Within about a minute the Delivery column should show Healthy. In your tool, filter on service.name = claude-platform.
  4. For SDK spans, upgrade the SDK and register a tracer provider before your first call. Set ANTHROPIC_OPEN_TELEMETRY_TRACES_CONTENT_MODE=content only if you want prompts and responses in client spans.
  5. Call the SDK inside one of your own spans so the API spans nest under your request.
I use the Claude <Python|TypeScript> SDK and send traces to <my observability tool> over OTLP. Add OpenTelemetry tracing to this app per Anthropic's Claude Platform docs: register a tracer provider before the first Claude call, wrap each user-facing request in its own span so SDK and API spans nest under it, keep content mode at metadata_only, and pin the SDK version. Then tell me how to count tokens once when both SDK and API spans exist.

Good to know#

  • Beta means breakage. The SDK docs warn that during the beta "the SDK options and the span schema can change in ways that break your code, your queries, or your dashboards." Pin the SDK version.
  • Don't double count tokens. SDK and API spans share the name anthropic.messages.create. Sum one source per request; the SDK span is CLIENT, the API span is SERVER.
  • Not a billing record. Delivery is best effort and at least once, so spans can be lost or repeat. Use the Usage API to track each key.
  • Full content leaves Anthropic. Your tool stores prompts under its own retention. Orgs with a HIPAA, FERPA or K-12 restriction export metadata only. Each span holds up to 0.75 MB of content by default.
  • Destinations switch off after a 3xx redirect, a non-public IP, or 24 hours of failed deliveries. Limit: 10 per org.
  • Claude Platform on AWS doesn't read the traceparent header yet, so its API spans start their own traces.
  • Claude Code users: version 2.1.300 added GenAI semantic-convention attributes such as gen_ai.conversation.id to its own trace spans, so Code and Platform traces can share dashboards.
  • Watch next: a general availability date and pricing. The launch post and docs we read list neither.

Sources#

Last checked: 2026-10-15

Sources

  1. platform.claude.com
  2. claude.com
  3. platform.claude.com
  4. platform.claude.com
  5. platform.claude.com
  6. x.com

Something wrong? Tell the bot