Jaeger
v2.22.0ObservabilityOct 6, 2026
This release adds span search and pagination, promotes several feature gates, and includes numerous correctness fixes. It introduces no disclosed security changes.
Action needed (1)
breakingThe AI sidecar MCP URL default
The
ai-sidecarnow points its default MCP URL to query port16686.
All 56 other recorded changesfixes 30 · additions 17 · value changes 6 · constraints 3
fixes (30)
- Fix(es): configure numeric attribute indexing instead of gating it
- Fix(remote-storage): configure the service from one confmap-decoded file
- Fix(es): honor index-prefix in dependencies/sampling legacy templates
- skip same-service parents when building dependency links
- reject unknown --unit values in lookback
- remove nil error wrap in start()
- use read locks for read-only samplingstore methods
- return an error for a nil predicate instead of panicking
- re-enable slsa provenance with valid tag reference
- validate positive maxtraces
- gate attribute ordering separately from typed attribute indexing
- answer capability refusals with unimplemented instead of invalidargument
- apply timeout to grpc storage calls
- reject non-positive leader election lease refresh intervals
- give the sync batch size half of the bulk cap as headroom
- tracesdata.marshaltosizedbuffer writes to buffer head instead of tail
- batch and block on overflow in the kafka ingester configurations
- copy the whole pagination struct before clamping
- clamp the page size on a copy rather than through the caller pointer
- write ui trace file when max-spans-count is reached
- reject negative durations in search_traces before querying
- back off to a rune boundary when truncating read_skill
- refuse a trace filter that a later interceptor drops
- prevent service-operation key collisions
- propagate write errors in insertthroughput and insertprobabilitiesandqps
- retry failed writes in the synchronous kafka ingester config
- reject non-positive unit-count in lookback action
- prevent archiving archive-only traces
- do not double the separator when index-prefix already ends in "-"
- validate attr-keys and attr-values to prevent divide-by-zero
additions (17)
- give span searches their own query interceptor hooks
- declare span search and pagination
- execute caller-selected span ordering
- expose span ordering in api v3
- forward span ordering over grpc
- validate and bind span ordering
- search spans in the core reader
- wire span search through the elasticsearch reader
- admit rfc 0014 pagination into the query path
- add findspans to the query service
- add the rfc 0014 pagination contract to tracestore
- add findspans and search pagination to the memory backend
- add the rfc 0014 page token that paginating readers return
- add the api_v3 findspans handler and http route
- add the jaeger_storage_writer connector to dead-letter rejected spans
- add searchspans to capabilities and findspans to reader
- register jaeger_storage_exporter as a connector with a dead-letter output
value changes (6)
- Refactor(es): give the span index its own options type
- promote the native trace summaries gate to stable
- promote the structured filters feature gate to beta
- promote the omitparentspanidreference gate to beta
- break span sort ties on the backing index and document id
- report terminally rejected bulk items in a typed error
constraints (3)
- lower starttime comparisons into filter
- support span.traceid and span.spanid in structured filters
- support ordered built-in text filters
Add Jaeger to your stack
A weekly email arrives when a release needs action. Like the breaking changes in this release.