Skip to content

Replace deprecated Jaeger tracing exporter with OTLP #13499

@rvagg

Description

@rvagg

Context: #13415

The go.opentelemetry.io/otel/exporters/jaeger package was deprecated by OpenTelemetry in July 2023. Jaeger natively accepts OTLP, so the recommended replacement is otlptrace/otlptracehttp or otlptrace/otlptracegrpc.

Bumping to v1.17.0 (the final release) triggers SA1019 in staticcheck, so we can't update it without replacing it. Current version is pinned at v1.14.0.

Removing this entirely is an option, but we can also just replace:

  • lib/tracing/setup.go: rewrite to use OTLP exporter, this is mainly: swap jaeger.New() for otlptracehttp.New() & translate env var handling
  • cli/lotus/lotus.go, cli/miner/miner.go: callers of SetupJaegerTracing
  • New env vars (LOTUS_OTEL_EXPORTER_ENDPOINT or similar), remove LOTUS_JAEGER_*
  • docker-compose.yaml: update jaeger service config
  • documentation/en/jaeger-tracing.md: update & rename or remove

Marking this as good-first-issue, although it's not trivial! AI will help because this is generic Go stuff, The existing doc (documentation/en/jaeger-tracing.md) is your guide for what the end result should look like, although it's already out of date even with the current code. Follow that doc to understand the current flow, then update it to reflect the new env vars and OTLP setup. Jaeger's all-in-one binary already accepts OTLP on port 4318, so the UI experience is unchanged. Make sure you run it and post screenshot(s) to demonstrate it working. Please don't just blindly throw AI at this, you need to walk through, try it out, apply some care in naming and how things are implemented.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    📌 Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions