// the find
jaegertracing/jaeger-client-go
🛑 This library is DEPRECATED!
The official Go client for Jaeger distributed tracing, built on the OpenTracing API. It is explicitly deprecated — the maintainers are done with it and want everyone on OpenTelemetry. If you're starting a new project, this is the wrong library.
- Solid sampling implementation: const, probabilistic, rate-limiting, and remote-controlled samplers cover most real-world needs, including the delayed SamplerV2 API that lets you make sampling decisions based on tags set later in the span lifecycle.
- Environment-variable-based configuration makes it easy to run the same binary across environments without code changes — useful for containerized deployments.
- The crossdock integration test suite is a genuine end-to-end compatibility harness, not just unit tests, which gave reasonable confidence that propagation worked correctly across services.
- Zipkin B3 header propagation support means it could coexist with Zipkin-instrumented services during migrations.
- It's deprecated and frozen — no new features, no bug fixes except security. Adopting it today means planning a migration to OpenTelemetry almost immediately.
- The import path is still `github.com/uber/jaeger-client-go` even though the repo moved to `github.com/jaegertracing`. That historical accident will trip up anyone who doesn't read the README first.
- Thrift as the wire format is a liability — it pulls in generated Thrift code and a vendored Thrift library that you're now responsible for, vs. gRPC/OTLP which has a healthier ecosystem.
- The delayed sampling / SamplerV2 feature and the `x/` package experimental samplers are underdocumented and marked experimental, making them risky to depend on in a library that's no longer being developed.