jaeger
v2.23.0CNCF Jaeger, a Distributed Tracing Platform
- Maintenance
- ActiveBased on the last push: commit history is not collected yet
- License
- Apache-2.0Permissive · OSI-approved
- Security
- 2 advisories2 medium · Scorecard 8.6/10
- Supported versions
- 1 line supportednewest 2 · 1 ended
23.4k stars · 3.2k forks · 635 open issues · last release 10 days ago · data checked 5 hours ago
Supported versions
Source: endoflife.date| Line | Latest | Released | Security fixes |
|---|---|---|---|
| 2 | 2.23.0 | Nov 4, 2024 | Supported |
| 1 | 1.76.0 | Dec 6, 2017 | Ended Dec 31, 2025 |
Breaking changes
What to check before upgrading, taken from the notes of the last 30 releases.
- v2.23.0Nov 5, 2026
⛔ Breaking Changes
- Fix(storage): remove unused clickhouse feature gates (@albertteoh in #9988)
- Fix(storage): resolve auth extension references deterministically (@jkowall in #9772)
- Chore(ai-sidecar): remove the gemini reference sidecar (@alishair7071 in #9841)
- Feat(clickhouse): require an explicit table engine when creating the schema (@ysh-bot in #9813)
⛔ Breaking Changes
- Feat(trace): open the json views from the v3 trace api (@sksingh2005 in #4678)
- Refactor(api): migrate downloads to jaegerclient (@sksingh2005 in #4649)
- v2.22.0Oct 6, 2026
⛔ Breaking Changes
- Fix(es): configure numeric attribute indexing instead of gating it (@ysh-bot in #9694)
- Refactor(es): give the span index its own options type (@ysh-bot in #9693)
- Fix(remote-storage): configure the service from one confmap-decoded file (@ysh-bot in #9699)
- Fix(es): honor index-prefix in dependencies/sampling legacy templates (@zarna1parekh in #9684)
- Feat(es): promote the native trace summaries gate to stable (@ysh-bot in #9609)
- Feat(query): promote the structured filters feature gate to beta (@ysh-bot in #9607)
- Feat(query): give span searches their own query interceptor hooks (@ysh-bot in #9597)
- Feat(es): promote the omitparentspanidreference gate to beta (@ysh-bot in #9586)
- v2.21.0Sep 14, 2026
⛔ Breaking Changes
- Feat(query)!: remove v1 http endpoints the ui no longer calls (@ysh-bot in #9260)
- Replace ai.enable_mcp with an optional ai.mcp config block (@SoumyaRaikwar in #9194)
- Fix(es): reject five unsupported elasticsearch config keys at startup (@ysh-bot in #9076)
- Feat(clickhouse): promote clickhouse storage feature gate to stable (@ysh-bot in #9058)
- v2.20.0Jul 20, 2026
⛔ Breaking Changes
- Feat(es): promote es.* rotation and index-cleaner feature gates to beta (@ysh-bot in #9018)
- Feat(es): remove support for elasticsearch v6 (@yurishkuro in #8948)
- Feat(mcp): merge jaegermcp extension into jaegerquery extension (@Nabil-Salah in #8894)
- Feat(es): add configurable max_trace_duration and improve time-range design (@yurishkuro in #8840)
- v2.19.0Jun 3, 2026
⛔ Breaking Changes
- Feat: migrate search to /api/v3/trace-summaries (adr-010 phase 2b) (@yurishkuro in #3943)
- v2.18.0May 13, 2026
⛔ Breaking Changes
- Metrics changes due to upgrading all OTEL collector packages (@renovate-bot in #8560)
- [metricstore] remove min step api from metricstore (@mahadzaryab1 in #8425)
⛔ Breaking Changes
- Chore: drop legacy browser support (@ghosthouse7 in #3712)
- v2.16.0Mar 7, 2026
⛔ Breaking Changes
- Enforce Go version consistency across the codebase; require Go 1.25.7 (@Copilot in #8052)
- Remove legacy response format of remote sampling endpoint (@yurishkuro in #8014)
- v2.15.0Feb 6, 2026
⛔ Breaking Changes
- Restrict trace/metric storage configs to allow exactly one backend type (@yurishkuro in #7875)
Release history
All releases on GitHubAtom feed/feed/jaegertracing/jaeger
Badge
[](/p/jaegertracing/jaeger)
Release v2.23.0
Backend Changes
⛔ Breaking Changes
- Fix(storage): remove unused clickhouse feature gates (@albertteoh in #9988)
- Fix(storage): resolve auth extension references deterministically (@jkowall in #9772)
- Chore(ai-sidecar): remove the gemini reference sidecar (@alishair7071 in #9841)
- Feat(clickhouse): require an explicit table engine when creating the schema (@ysh-bot in #9813)
✨ New Features
- Feat(mcp): accept a sql statement in the search_traces tool (@ysh-bot in #9925)
- Feat(query): add a sql query surface that compiles to rfc 0005 filters (@ysh-bot in #9922)
- Feat(query): serve storage search capabilities over api_v3 http (@ysh-bot in #9804)
- Feat(query): serve storage search capabilities over api_v3 grpc (@ysh-bot in #9803)
- Build(idl): bump jaeger-idl to v0.14.0 (@ysh-bot in #9802)
- Feat(clickhouse): route structured query filters to sql where (rfc 0005 m3) (@om7057 in #9701)
🐞 Bug fixes, Minor Improvements
- Fix(mcp): start the investigation strategy with read_skill (@lopster568 in #10038)
- Fix(otel-demo): add 30-day opensearch index retention (@jkowall in #9917)
- Fix(es): store non-finite doubles as otlp/json string tags (@jkowall in #9912)
- Fix(query): deduplicate shared span ids in linear time (@jkowall in #9764)
- Fix(query): recover from panics in query grpc and mcp handlers (@jkowall in #9766)
- Feat(query): forward captured identity headers onto the acp agent handshake (@ysh-bot in #10007)
- Fix(mcp): guard trace walks against duplicate span ids (@jkowall in #9763)
- Fix(query): check filter nesting depth before decoding api_v3 parameters (@jkowall in #10006)
- Feat(query): support prettyprint on the v3 http api (@sksingh2005 in #9990)
- Fix(jaegermcp): expose total_span_count in get_trace_topology (@alliasgher in #8530)
- Feat(storage): honor anchors and case folding in regex filter patterns (@ysh-bot in #9923)
- Fix(query): reject durations that overflow (@sublimemonk in #9877)
- Fix(query): render non-finite float attributes as strings (@ayush00git in #9901)
- Feat(query): add ai.auth to gate the ai endpoints with an authenticator (@ysh-bot in #9908)
- Fix(clickhouse): bind gettraces time bounds at nanosecond precision (@NUAAwqy in #9894)
- Fix(clickhouse): bound distributed trace searches (@zarna1parekh in #9882)
- Fix(jaegerai): start a new text message after each tool call (@ysh-bot in #9879)
- Fix(jaegerai): keep whitespace-only streaming chunks (@jkowall in #9878)
- Fix(query): reject non-positive lookback, step and rateper in metrics api (@sublimemonk in #9863)
- Refactor(ai): remove legacy acp tool routing (@alishair7071 in #9855)
- Fix(tenancy): reject empty tenant values on grpc (@jkowall in #9768)
- Fix(query): drop resource spans emptied by dedup (@jayhemnani9910 in #9836)
- Fix(query): reject non-positive lookback values (@sloemo01 in #9832)
- Fix(cassandra): stop duration search at depth (@sublimemonk in #9853)
- Feat(mcp): add streamable_http transport options to ai.mcp (@ysh-bot in #9857)
- Feat(memory): evaluate phrase and fulltext operators in memory store (@rishabhkumar92 in #9791)
- Feat(mcp): add ai.mcp.disable_localhost_protection for proxied deployments (@ysh-bot in #9849)
- Fix(remotesampling): wait for serve goroutines in shutdown (@stanleys12 in #9824)
- Fix(mcptools): set error status on spans for failed tool calls (@SoumyaRaikwar in #9809)
- Fix(storage/es): accept non-string index settings in getjaegerindices (@pujitha24 in #9252)
- Fix(cache): check ttl in compareandswap (@RudraDudhat2509 in #9736)
- Fix(query): reject inverted/zero time range in apiv2 getdependencies (@pranitaurlam in #9239)
- Fix(clickhouse): reject default_search_depth exceeding max_search_depth and negative dial_timeout (@padmasri-web in #9725)
- Fix(es): reject negative index retention (@viiccwen in #9123)
- Feat(es): record bulk request size metrics for the elasticsearch writer (@ysh-bot in #9787)
- Fix(badger): remove stale operations entries on service expiry (@bhavyamsharmaa in #9021)
- Fix(storage): sanitize remote storage exports (@viiccwen in #9062)
- Fix(examples): set max_span_age in opensearch demo (@sahilnyk in #9124)
- Fix(mcptools): always emit mcp.method.name attribute on mcp tracing spans (@Aryanbhargava18 in #9749)
- Fix(es): turn off the span search _id tie-breaker by default (@ysh-bot in #9783)
- Fix(docker): run images with a non-root primary group (@jkowall in #9771)
- Fix(query): treat non-string library attributes as conflicts instead of panicking (@jkowall in #9765)
- Fix(spm): escape service names in promql matchers (@jkowall in #9769)
- Fix(es-index-cleaner): escape index names in delete requests (@jkowall in #9770)
- Fix(deps): update apache thrift to v0.25.0 (@jkowall in #9756)
- Fix hardcoded metricstore es extended lookback (@HESleagacy in #9102)