Skip to content

jaeger

v2.23.0
jaegertracing/jaeger

CNCF Jaeger, a Distributed Tracing Platform

Version of jaegertracing/jaeger you run

CompareView on GitHub

Supported versions

Source: endoflife.date
LineLatestReleasedSecurity fixes
22.23.0Nov 4, 2024Supported
11.76.0Dec 6, 2017Ended 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

  • 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

    ⛔ Breaking Changes

  • 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 GitHub
BadgeLatest version of jaegertracing/jaeger[![version](/badge/jaegertracing/jaeger)](/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)

Full release notesCompare with previous