Skip to content
Latchkey

How to Export Build Traces to Jaeger or Grafana Tempo

Both Jaeger and Tempo accept OTLP, so a single Collector can fan the same CI spans to either backend.

Run an OpenTelemetry Collector that receives OTLP from the exporter and exports to Jaeger (OTLP on 4317) or Tempo (OTLP on 4317). Point the CI exporter at the Collector, and the Collector at the backend.

Steps

  • Deploy an OpenTelemetry Collector reachable from CI.
  • Configure an otlp receiver and an otlp exporter to Tempo or Jaeger.
  • Point the CI exporter OTLP_ENDPOINT at the Collector.

Collector config

otel-collector.yaml
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
exporters:
  otlp/tempo:
    endpoint: tempo:4317
    tls:
      insecure: true
  otlp/jaeger:
    endpoint: jaeger:4317
    tls:
      insecure: true
service:
  pipelines:
    traces:
      receivers: [otlp]
      exporters: [otlp/tempo]

Gotchas

  • Modern Jaeger accepts OTLP natively; the legacy jaeger exporter in the Collector is removed.
  • Tempo needs a metrics-generator or a separate store for service graphs; traces alone do not build them.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →