OpenTelemetry Monitoring: No Telemetry Data Exported

Resolved 💬 6 comments Opened Jun 6, 2025 by dzungtr Closed Jun 9, 2025

Bug Description
claude code OTEL monitor not working. I have set the env configuration according to the doc. However, my observability backend does not receive any data from claude. Enable debug or run command /status does not give any feedback.

Environment Info

  • Platform: linux
  • Terminal: Tabby
  • Version: 1.0.16
  • Feedback ID: 93ed3bb8-bf6e-4338-a4db-781daaba6c04

$HOME/.claude/settings.json

{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "http",
    "OTEL_EXPORTER_OTLP_ENDPOINT": "http://localhost:4318"
  }
}

Otel collector manifest

apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
  name: otel
spec:
  managementState: managed
  mode: deployment
  replicas: 1
  image: otel/opentelemetry-collector-contrib:latest
  podSecurityContext:
    runAsUser: 0
    runAsNonRoot: false
    fsGroup: 0
  config:
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: 0.0.0.0:4317
          http:
            endpoint: 0.0.0.0:4318
    processors:
      memory_limiter:
        check_interval: 1s
        limit_percentage: 75
        spike_limit_percentage: 15
      batch:
        send_batch_size: 10000
        timeout: 10s
    exporters:
      otlp/tempo:
        endpoint: tempo.observability:4317
        tls:
          insecure: true
      prometheusremotewrite:
        endpoint: http://kube-prom-stack-kube-prome-prometheus.observability:9090/api/v1/write
        tls:
          insecure: true
      loki:
        endpoint: http://loki.observability:3100/loki/api/v1/push
        default_labels_enabled:
          exporter: true
          job: true
          instance: true
          level: true
      debug:
        verbosity: detailed
        sampling_initial: 5
        sampling_thereafter: 200
    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: [memory_limiter, batch]
          exporters: [otlp/tempo]
        metrics:
          receivers: [otlp]
          processors: [memory_limiter, batch]
          exporters: [prometheusremotewrite]
        logs:
          receivers: [otlp]
          processors: [memory_limiter, batch]
          exporters: [loki]
  ports:
    - name: otlp-grpc
      port: 4317
      protocol: TCP
    - name: otlp-http
      port: 4318
      protocol: TCP

otel-collector logs

2025-06-06T13:43:35.328Z        info    service@v0.127.0/service.go:199 Setting up own telemetry...     {"resource": {}}
2025-06-06T13:43:35.328Z        info    prometheusremotewriteexporter@v0.127.0/exporter.go:178  starting prometheus remote write exporter {"resource": {}, "otelcol.component.id": "prometheusremotewrite", "otelcol.component.kind": "exporter", "otelcol.signal": "metrics", "ProtoMsg": "prometheus.WriteRequest"}
2025-06-06T13:43:35.329Z        info    memorylimiter@v0.127.0/memorylimiter.go:149     Using percentage memory limiter {"resource": {}, "otelcol.component.kind": "processor", "total_memory_mib": 61881, "limit_percentage": 75, "spike_limit_percentage": 15}
2025-06-06T13:43:35.329Z        info    memorylimiter@v0.127.0/memorylimiter.go:74      Memory limiter configured       {"resource": {}, "otelcol.component.kind": "processor", "limit_mib": 46411, "spike_limit_mib": 9282, "check_interval": 1}
2025-06-06T13:43:35.329Z        info    builders/builders.go:26 Deprecated component. Will be removed in future releases.       {"resource": {}, "otelcol.component.id": "loki", "otelcol.component.kind": "exporter", "otelcol.signal": "logs"}
2025-06-06T13:43:35.329Z        info    lokiexporter@v0.127.0/exporter.go:44    using the new Loki exporter     {"resource": {}, "otelcol.component.id": "loki", "otelcol.component.kind": "exporter", "otelcol.signal": "logs"}
2025-06-06T13:43:35.330Z        info    service@v0.127.0/service.go:266 Starting otelcol-contrib...     {"resource": {}, "Version": "0.127.0", "NumCPU": 16}
2025-06-06T13:43:35.330Z        info    extensions/extensions.go:41     Starting extensions...  {"resource": {}}
2025-06-06T13:43:35.330Z        info    otlpreceiver@v0.127.0/otlp.go:116       Starting GRPC server    {"resource": {}, "otelcol.component.id": "otlp", "otelcol.component.kind": "receiver", "endpoint": "0.0.0.0:4317"}
2025-06-06T13:43:35.330Z        info    otlpreceiver@v0.127.0/otlp.go:173       Starting HTTP server    {"resource": {}, "otelcol.component.id": "otlp", "otelcol.component.kind": "receiver", "endpoint": "0.0.0.0:4318"}
2025-06-06T13:43:35.330Z        info    service@v0.127.0/service.go:289 Everything is ready. Begin running and processing data. {"resource": {}}

Errors

[]

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗