Migrate tracing from jaeger-client to OpenTelemetry

Problem

The jaeger-client Python library is archived and incompatible with Python 3.12 (its dependency chain crashes with AttributeError due to removed collections.MutableMapping).

Solution

Migrate the tracing subsystem from the archived jaeger-client to the OpenTelemetry SDK with OTLP gRPC exporter, which is the officially recommended replacement.

Changes

  • Replace jaeger_client import with opentelemetry SDK packages in gluetool/action.py
  • Rewrite Tracer to use TracerProvider + OTLPSpanExporter
  • Replace GLUETOOL_TRACING_REPORTING_HOST / GLUETOOL_TRACING_REPORTING_PORT env vars with single GLUETOOL_TRACING_REPORTING_ENDPOINT (default http://localhost:4317)
  • Update Action span API: finish()end(), set_tag()set_attribute(), child_ofcontext
  • Simplify Tracer.close() to use provider.force_flush() + shutdown()
  • Add opentelemetry-sdk and opentelemetry-exporter-otlp-proto-grpc as dev dependencies
  • Remove jaeger_client section from mypy.ini
  • Update logger handling in gluetool/log.py from jaeger_tracing to opentelemetry

Companion MR

Assisted-by: Claude Code

Edited by Miroslav Vadkerti

Merge request reports

Loading