Telemetry notes
What OTel adds over Claude Code transcripts
cost_usd, duration_ms/ttft_ms per API call, api_error with retry attempts, tool_decision (auto vs user approval, rejections), active_time. Everything else (tokens, model, tool use) is already in ~/.claude/projects/*.jsonl. OTel carries no prompt or response content unless OTEL_LOG_USER_PROMPTS is set.
Pitfalls
- OTLP JSON
intValuemay arrive as a string. - Each record repeats ~10 identity attributes, including user email: matters for storage size and privacy.
- Agents drop telemetry silently when the endpoint is down (tested on Claude Code: no warning, no delay).
- Nothing is retroactive: data exists only from the moment telemetry is enabled.