• About
  • Editorial policy
  • Contact
  • Privacy
  • Legal
  • Cookie settings
Friday, October 16, 2026
  • Login
PacketNebula
  • Home
  • News
  • Tools
    • Network
    • Security
    • Developer
    • Sysadmin
    • SEO
    • Email & DNS
  • Guides
  • Trackers
    • LLM API pricing
    • Open-weight models
    • Retirements calendar
    • Infrastructure deals
  • About
  • Download
No Result
View All Result
PacketNebula
No Result
View All Result
Home Sysadmin

Claude API traces won’t reach a collector on 4318 or a private IP

by Stéphane Cardon
15 October 2026
in Sysadmin
0
OpenTelemetry logo, an orange and blue telescope next to the word OpenTelemetry, on a white background

Image: OpenTelemetry Authors (CNCF) / Wikimedia Commons, CC BY 4.0

Share on FacebookShare on Twitter

So you've got an OpenTelemetry Collector humming on 4318 inside the VPC, and Anthropic just shipped trace export for the Claude API. It won't connect. Since 14 October the API can push spans for every Messages API request and Managed Agents session straight to your observability backend, but only to an OTLP/HTTP endpoint on HTTPS port 443, named by a public hostname. We read the setup docs line by line, because the rules that decide whether your traces land at all are buried in the delivery section.

The short answer

Claude API trace export has been in beta since 14 October 2026. You add a destination in the Claude Console (admin role) or through the Admin API. It needs OTLP/HTTP with protobuf, an HTTPS URL on port 443 and a hostname, not an IP. The API disables the destination if the hostname resolves to a non-public address, if the endpoint answers with a 3xx redirect, or if every delivery fails for 24 hours. Delivery is at least once and best effort, so spans can repeat or go missing. The default content mode is metadata only; full prompts and responses are opt-in, capped at 0.75 MB per span unless you change it.

The network rules that decide if anything arrives

Here's the part sysadmins will trip on first. A stock Collector's OTLP/HTTP receiver listens on localhost:4318, per the receiver's own README. Anthropic's page says it plainly: configure that receiver to accept HTTPS on 443, or put a load balancer or reverse proxy in front of it. The docs only describe OTLP/HTTP with protobuf, so a gRPC listener on 4317 is out too.

Then the hostname. The OTLP endpoint URL field wants a hostname, not an IP address, and the API checks what that name resolves to. If it points at an address that isn't public, the destination gets switched off. So a split-horizon DNS name that resolves to 10.x inside your network won't do; Anthropic's servers have to reach it from the internet. That's a real change for teams who keep collectors private and only let agents inside the network talk to them. You'll be opening one ingress path, so give it its own auth header and a rate limit.

Redirects are fatal rather than followed. A 3xx response disables the destination, which matters if your ingress bounces HTTP to HTTPS or adds a trailing slash. Timeouts are tight: the TLS handshake gets 5 seconds, the response headers another 5, and the whole delivery 10 seconds including a resend. The first request of every delivery is gzipped with Content-Encoding: gzip; if your endpoint answers 400 or 415, the API resends uncompressed. Requests carry User-Agent: Claude-Platform, which is handy for a WAF allow rule. Before saving, it's worth pointing our SSL certificate checker at the hostname, since a TLS failure is one of the listed delivery errors.

What the spans contain, and what they don't

By default a destination runs in Metadata only: identifiers, timing, status and token counts, plus names you chose yourself, like agent, tool and MCP server names. Full content adds prompts and responses, in the GenAI semantic convention attributes gen_ai.system_instructions, gen_ai.input.messages and gen_ai.output.messages. Each span holds up to 0.75 MB of content by default. Past that, the API trims it and sets anthropic.content.truncated to true, dropping the system prompt and the earliest messages first. Anthropic says a full 1M-token context needs about 4 MB, so raise the limit only if your backend and every proxy in between accept bodies that big.

Two compliance details stood out. Organisations with a HIPAA, FERPA or K-12 data-handling restriction get metadata only from API destinations whatever mode is set (SDK spans aren't covered by that rule). And zero data retention doesn't block Full content for the Messages API: the API holds the content in memory until delivery. Once it's delivered, though, your backend's retention applies. Managed Agents isn't eligible for zero data retention at all.

We'd start every destination on Metadata only. Full content is great for debugging and for building evals from real traffic, but it copies every prompt into a second system with its own access list. That's a decision for whoever owns your data policy, not a checkbox during setup.

Don't bill from it, and watch the double count

The docs say outright that exported spans aren't a complete record of usage. Delivery is best effort, a lost span can't be resent, and any caller can suppress a request's spans by sending a W3C traceparent header with the sampled flag off. For per-key spend, or to spot a leaked key, Anthropic points you at the Usage API instead. Retries also mean the same span can arrive twice; dedupe on trace ID plus span ID if your backend doesn't.

Token totals have a trap of their own. If you also turn on SDK tracing, a request shows up as two spans named anthropic.messages.create, one of kind CLIENT from the SDK and one of kind SERVER from the API. Sum both and you've doubled your bill on the dashboard. Count the API spans, and don't add cache read or write attributes on top of gen_ai.usage.input_tokens, which already includes them.

One more limit for AWS shops: Claude Platform on AWS doesn't honour the traceparent header yet, so its API spans always start their own traces. I'm not sure how much the best-effort delivery will bite in practice. Anthropic doesn't publish a loss rate, and Grafana's own setup guide calls the integration a public preview where breaking changes may still land. For debugging slow agent runs it looks useful today. For anything an auditor reads, we'd keep the Usage API as the source of truth.

FAQ

Can the Claude API send traces to a collector on port 4318?

No. A destination needs an OTLP/HTTP endpoint that accepts protobuf at an HTTPS URL on port 443. Anthropic suggests configuring the Collector's receiver for HTTPS on 443 or putting a load balancer or reverse proxy in front of it.

Does Claude's OpenTelemetry export include my prompts?

Not by default. The default mode is Metadata only. Prompts and responses are exported only when a destination or SDK client is set to Full content, and never from API destinations for organisations with a HIPAA, FERPA or K-12 restriction.

Why did my Claude telemetry destination get disabled?

The API disables a destination when the endpoint sends a 3xx redirect, when its hostname resolves to an IP that isn't public, or when all deliveries fail for 24 hours. Fix the cause, then click Enable in the destination's menu.

Can I use the exported spans to track API spend?

Not reliably. Delivery is best effort and callers can turn sampling off per request. Anthropic recommends the Usage API for per-key usage. For model prices themselves, see our LLM API pricing tracker.

Sources: Anthropic, Claude Platform release notes (14 October 2026), OpenTelemetry for the Claude API and Use OpenTelemetry with the Claude API; independent: OpenTelemetry Collector OTLP receiver README and Grafana Cloud setup guide. All read on 15 October 2026.

Tags: anthropicClaude APInewsObservabilityOpenTelemetry
ShareTweet
Previous Post

Meta’s API sells Muse Wonder, not the Wonder Full that tops its chart

Next Post

Nemotron 3.5 Bolt says 24GB on the label and 28GB in the recipe

Stéphane Cardon

Stéphane Cardon

Network cybersecurity engineer: architecture, LAN and WLAN, system administration. He runs PacketNebula, where he publishes the tools and answers he wanted for his own work.

Next Post
NVIDIA announcement image for Nemotron 3.5 Super VL and Bolt: five dark tiles with code, search, chart and video icons around a glowing green cube, in front of the Earth at night

Nemotron 3.5 Bolt says 24GB on the label and 28GB in the recipe

Free tools

  • IPv4 subnet calculator
  • DNS lookup
  • SSL certificate checker
  • HTTP headers checker
  • SPF, DKIM and DMARC checker
  • JWT decoder
  • Cron expression builder
  • Chmod calculator
  • Password generator

All 24 tools →

Guides to keep handy

  • Flush the DNS cache on Windows
  • Kill the process using a port
  • Generate an SSH key
  • Secure a new Ubuntu VPS
  • Find files on Linux
  • Extract and create tar.gz

More guides →

Who writes this

Stéphane Cardon, network cybersecurity engineer. Architecture, LAN and WLAN, system administration. PacketNebula holds the tools and answers he wanted for his own work.

About this site →

  • About
  • Editorial policy
  • Contact
  • Privacy
  • Legal
  • Cookie settings

Copyright © 2026 Stephane Cardon.

No Result
View All Result
  • Home
  • News
  • Tools
    • Network
    • Security
    • Developer
    • Sysadmin
    • SEO
    • Email & DNS
  • Guides
  • Trackers
    • LLM API pricing
    • Open-weight models
    • Retirements calendar
    • Infrastructure deals
  • About
  • Download

Copyright © 2026 Stephane Cardon.

Cookies, your call

We use Google Analytics to see which pages get read. Once our AdSense application is approved, articles and guides will carry Google ads. Nothing runs until you say yes, and nothing runs on the tool pages. Details