Skip to content
Back to blog
AI Tools

Claude OpenTelemetry Export Beta: What Changed and What to Do

Claude OpenTelemetry export entered beta on October 14, 2026. Learn how to send Messages API and Managed Agents traces to your monitoring tool, verify setup, and handle prompts safely.

5 min readAI Tools
Claude OpenTelemetryClaude API monitoringClaude Managed AgentsClaude API tracingAnthropic
Claude OpenTelemetry Export Beta: What Changed and What to Do

Claude OpenTelemetry export is a beta feature that sends processing records (traces) for Messages API requests and Claude Managed Agents sessions to the monitoring tool you already use. Anthropic said in its release notes that the beta started on October 14, 2026.

What changed Once you register a destination in the Claude Console, the API sends request-level records to your monitoring tool. An SDK option to turn it on was released at the same time.

Who is affected Developers and operators who run the Claude API or Managed Agents in a service and need to track slow requests, failures, and token usage.

What to do now First, confirm one test span in the default mode, which sends metadata only and no content. Turn on full prompt export only after you have checked your retention policy.

Claude OpenTelemetry export: what was added

With this release, teams running the Claude API can see where a request slows down and which tool call fails, right in their existing monitoring dashboards. It is similar to following a parcel tracking number to see which depot a package is sitting in. OpenTelemetry is a common standard that any monitoring tool can read, so if you switch tools, the tracking number format stays the same. Claude exports its records in this standard, so tools such as Datadog or Grafana can read them without extra conversion. Because this is a beta, field names may change.

According to the official docs, a trace is the full record of one request, and a span is a single step inside it (a model request, a tool use, and so on). It covers Messages API requests, tool use, and Managed Agents sessions. Supported environments are the Claude API and Claude Platform on AWS. On the SDK side, it is also available in beta on Amazon Bedrock, Google Cloud, and Microsoft Foundry.

ItemSDK tracingAPI tracing
How to set upCodeConsole screen
Required permissionNoneConsole admin
What you seeRequests from clients that use the SDK, tool runs on your sideModel runs inside a request, Managed Agents turns, server tools the API runs
ScopeClients that use the SDKAll clients

If you turn on both, the SDK record and the API record for one request link into a single trace. SDK spans are produced in Python, TypeScript, C#, Go, Java, PHP, and Ruby.

Diagram comparing SDK tracing and API tracing in Claude OpenTelemetry export
The difference between SDK tracing and API tracing

How to register a destination in the Console

These are the steps from the API tracing setup docs. You need admin permission, an OTLP/HTTP address that accepts protobuf on HTTPS port 443, and credentials for that address (such as an API key).

  1. On the OpenTelemetry settings page in the Console, click Add destination.
  2. Choose a Provider. If yours is not listed, choose Custom and enter the OTLP endpoint URL. Do not add /v1/traces to the end of the URL. The API adds it for you.
  3. Enter your authentication header under Request headers. The value is not shown again after you save.
  4. Set the Content mode and Workspaces (all, selected, or all except some), then save.
  5. From the destination's more menu, click Test to send a test span.
Diagram of the five steps to register a Claude OpenTelemetry destination in the Console
Steps to register a destination in the Console

There are two ways to verify. When the Delivery column in the Console shows Healthy (it can take up to about 1 minute), delivery succeeded. In your monitoring tool, filter by service.name = claude-platform and check that an anthropic.test span arrived. If you see Failing, hover over it to read the last error. A 401 or 403 is often a wrong authentication header, and a 404 is often a wrong address path.

To register a destination in code, use telemetry-destinations in the Admin API. The cURL example in the docs adds the header anthropic-beta: telemetry-destinations-2026-08-11.

Should you send prompts too: choosing a content mode

The default is Metadata only, which sends only identifiers, times, status, token counts, and agent and tool names. If you choose Full content, prompts and responses are also carried in the spans. You can then read failure causes conversation by conversation, or build evaluation data from real traffic. The trade-off is that this content is stored in the monitoring tool you chose, under that tool's retention period and access permissions.

Diagram comparing the Metadata only and Full content modes in Claude OpenTelemetry export
The two content modes

The official docs state these conditions. Organizations set up with Anthropic under HIPAA, FERPA, or K-12 data handling restrictions send only metadata, even if they choose Full content. Organizations that use zero data retention (ZDR) can use Full content on the Messages API, but Managed Agents are not covered by ZDR. The content of one span is limited to 0.75MB by default. Beyond that, the system prompt and the earliest messages are cut first, and anthropic.content.truncated is marked true.

How to check with the SDK first

The SDK setup docs show how to see spans in console output first. For Python, install pip install --upgrade anthropic and pip install opentelemetry-sdk, then register a ConsoleSpanExporter on the TracerProvider before the first call. After you send one message, a single anthropic.messages.create span is printed to the console. That is your success criterion.

To send spans to a monitoring tool, replace the console output part with an OTLP exporter. Set the SDK content mode with the traces.content_mode option or the ANTHROPIC_OPEN_TELEMETRY_TRACES_CONTENT_MODE=content environment variable. The default is metadata_only. During the beta, SDK options and span names may change in breaking ways, so it is safer to pin your SDK version.

Token totals, limits, and what to do now

When you add up tokens from spans, count only one source. If the same request has both an SDK span and an API span, sum only the API span. Both are named anthropic.messages.create, so tell them apart by kind: CLIENT for the SDK side and SERVER for the API side. The docs say span delivery is best effort, so some spans may be lost, and they advise using the Usage API to reconcile usage per API key.

There are also operating limits. You can have up to 10 destinations per organization (including inactive ones). If all deliveries fail for 24 hours, or the endpoint returns a 3xx redirect, the API deactivates the destination. Spans from the inactive period are not sent again. There are three things to do now.

  1. Register one destination in a test workspace with Metadata only, and use Test to confirm the anthropic.test span.
  2. Send one real request and check that Delivery is Healthy and that the claude-platform span appears in your tool.
  3. Turn on Full content only after you have checked your monitoring tool's retention period and access permissions.

If you want to learn about related features, see Claude Managed Agents dynamic workflows: setup and limits and Managed Agents scheduled deployments news.

Frequently asked questions

Can I track Claude Code usage with this feature?

No. The official docs point to separate monitoring docs for Claude Code, the Agent SDK, and Cowork.

What permission do I need to register a destination?

You need the admin role in your Console organization. The developer role can only view the list.

What should I check first if spans do not appear?

Check whether there is an active destination that includes that workspace. Even after a workspace is newly included, it can take up to about 1 minute for spans to arrive.

Found this useful? Share it

Latest posts

Related projects

Get new posts by email

Insights on marketing, analytics, and dev, delivered to your inbox.