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
otlpreceiver and anotlpexporter to Tempo or Jaeger. - Point the CI exporter
OTLP_ENDPOINTat 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
How to Run an OpenTelemetry Collector in CIRun an OpenTelemetry Collector as a service container in a GitHub Actions job so pipeline steps can send OTLP…
How to Export Build Traces to DatadogSend CI pipeline traces to Datadog using CI Visibility or an OpenTelemetry Collector with the datadog exporte…