Skip to content

chore: remove deprecated Jaeger client, keep OTEL as sole tracing backend#50

Merged
ankurs merged 2 commits intomainfrom
chore/remove-jaeger-client
Mar 27, 2026
Merged

chore: remove deprecated Jaeger client, keep OTEL as sole tracing backend#50
ankurs merged 2 commits intomainfrom
chore/remove-jaeger-client

Conversation

@ankurs
Copy link
Copy Markdown
Member

@ankurs ankurs commented Mar 27, 2026

Summary

  • Remove the archived/EOL Jaeger client library (uber/jaeger-client-go, jaegertracing/jaeger-lib) and the setupJaeger() function
  • Tracing is now exclusively via OpenTelemetry OTLP, which supports all OTLP-compatible backends including Jaeger's OTLP receiver
  • SetupOpenTelemetry() and SetupNROpenTelemetry() are unchanged

Migration for users relying on JAEGER_* env vars

JAEGER_AGENT_HOST=localhost → OTLP_ENDPOINT=localhost:4317
JAEGER_AGENT_PORT=6831     → OTLP_INSECURE=true
JAEGER_SAMPLER_PARAM=1     → OTLP_SAMPLING_RATIO=1.0

What stays

  • SetupOpenTelemetry() / SetupNROpenTelemetry() — untouched
  • OpenTracing bridge — needed for legacy instrumentation
  • All OTLP config fields
  • go-coldbrew/tracing package
  • Interceptor tracing via OpenTracing (bridged to OTEL)

Test plan

  • go test -race ./... passes
  • make lint — 0 issues, 0 vulnerabilities
  • No Jaeger imports remain in Go source

Summary by CodeRabbit

  • Refactor

    • Removed legacy Jaeger tracing integration. OpenTelemetry is now the exclusive tracing solution, streamlining the codebase and reducing maintenance overhead.
  • Chores

    • Cleaned up project dependencies by removing Jaeger-related modules.
  • Documentation

    • Updated documentation reference links to reflect code organization changes.

…kend

Remove the archived/EOL Jaeger client library (uber/jaeger-client-go,
jaegertracing/jaeger-lib) and the setupJaeger() function.

Tracing is now exclusively via OpenTelemetry OTLP, which supports all
OTLP-compatible backends including Jaeger's OTLP receiver. Users
relying on JAEGER_* env vars should migrate to OTLP_ENDPOINT etc.

SetupOpenTelemetry() and SetupNROpenTelemetry() are unchanged.
Copilot AI review requested due to automatic review settings March 27, 2026 14:14
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 27, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 12dba034-7626-43ac-ba71-e0a6e1892728

📥 Commits

Reviewing files that changed from the base of the PR and between 29e850d and 101280d.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (4)
  • README.md
  • core.go
  • go.mod
  • initializers.go

📝 Walkthrough

Walkthrough

This PR removes deprecated Jaeger tracing support in favor of OpenTelemetry. The change eliminates the legacy setupJaeger function from the codebase, removes associated Jaeger dependencies from go.mod, and updates comments and documentation links to reflect the removal.

Changes

Cohort / File(s) Summary
Jaeger Setup Removal
initializers.go
Removed the setupJaeger function (38 lines) and all Jaeger-related imports including jaeger-client-go, jaeger-lib, and propagator packages.
Tracing Configuration Update
core.go
Removed the call to setupJaeger from processConfig and updated comments to reference "OpenTelemetry tracing" instead of "jaeger".
Dependency Cleanup
go.mod
Removed direct requirements for github.com/jaegertracing/jaeger-lib and github.com/uber/jaeger-client-go, along with their transitive dependencies.
Documentation Links
README.md
Updated hyperlink anchors and line number references for function/type documentation to reflect changes in initializers.go and core.go.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • vestor
  • kevinjom
  • fajran

Poem

🐰 Farewell to Jaeger, old and worn,
OpenTelemetry now is born!
Dependencies cleaned, lines made lean,
Tracing brighter than e'er seen! ✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/remove-jaeger-client

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

ankurs added a commit to go-coldbrew/docs.coldbrew.cloud that referenced this pull request Mar 27, 2026
- Index.md: clarify OTEL as primary, Jaeger as OTLP backend
- Packages.md: update tracing description
- howto/Tracing.md: remove Jaeger as direct backend, clarify OTLP
- integrations.md: rename Jaeger section to OTLP-compatible backends
- config-reference.md: clarify Jaeger example uses OTLP

Part of Jaeger client removal (go-coldbrew/core#50).
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the deprecated Jaeger client implementation and dependencies so tracing is exclusively handled via OpenTelemetry OTLP (with the existing OpenTracing bridge retained for legacy instrumentation).

Changes:

  • Removed setupJaeger() and Jaeger-related imports from initialization code.
  • Dropped Jaeger and related transitive dependencies from go.mod/go.sum.
  • Updated README-generated links to reflect shifted line numbers after code removal.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
initializers.go Removes setupJaeger() and Jaeger imports; leaves OTLP/OTEL tracing setup as the supported path.
core.go Stops invoking setupJaeger() during startup configuration.
go.mod Removes Jaeger modules and now-unused indirect deps.
go.sum Cleans checksums for removed Jaeger-related modules.
README.md Updates anchors/line references affected by code removal.
Comments suppressed due to low confidence (1)

initializers.go:112

  • Removing setupJaeger() also removes the explicit Zipkin B3 HTTP header propagation that Jaeger was configured with. SetupOpenTelemetry doesn’t set an explicit propagator, so OpenTracing extraction/injection will follow OTEL defaults (typically W3C TraceContext), which can break trace parent/child linkage with services still emitting B3 headers. Consider explicitly configuring a composite propagator (e.g., accept both W3C + B3) or documenting this propagation change as part of the migration.
// OTLPConfig holds configuration for OpenTelemetry OTLP exporter
//
// This struct provides a flexible way to configure OpenTelemetry tracing
// with any OTLP-compatible backend (e.g., Jaeger, Honeycomb, New Relic, etc.)
type OTLPConfig struct {

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread core.go Outdated
Comment thread core.go
@ankurs ankurs merged commit 2fbab67 into main Mar 27, 2026
6 of 7 checks passed
@ankurs ankurs deleted the chore/remove-jaeger-client branch March 27, 2026 14:30
ankurs added a commit to go-coldbrew/docs.coldbrew.cloud that referenced this pull request Mar 27, 2026
* docs: update tracing docs for Jaeger client removal

- Index.md: clarify OTEL as primary, Jaeger as OTLP backend
- Packages.md: update tracing description
- howto/Tracing.md: remove Jaeger as direct backend, clarify OTLP
- integrations.md: rename Jaeger section to OTLP-compatible backends
- config-reference.md: clarify Jaeger example uses OTLP

Part of Jaeger client removal (go-coldbrew/core#50).

* fix: consistent capitalization — "New Relic" and "OpenTelemetry"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants