What jaegertracing/jaeger shipped
Written by FoxPlug from the repository's own releases; not affiliated with Jaegertracing. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/jaegertracing/jaeger; Jaegertracing did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 5, 2026
What shipped
- Version 2.22.0 was released with the changes listed in its release notes. Release
- Jaeger-idl was bumped to v0.14.0, adding a Capabilities service to
api_v3that exposes the storage backend's search capabilities. Pull request #9802 - Storage search capabilities are now served over
api_v3gRPC. Pull request #9803 - Storage search capabilities are now served over
api_v3HTTP through a route and handler for the capabilities binding. Pull request #9804 - The ClickHouse reader now routes structured query filters to SQL WHERE clauses instead of folding filters down to a legacy conjunctive shape. Pull request #9701
- The Elasticsearch and OpenSearch reader now declares span search, span sorting and pagination capabilities. Pull request #9729
- The Elasticsearch and OpenSearch span search id tie-breaker is now off by default, so span search no longer sorts on document id after the ordering terms. Pull request #9783
- The Elasticsearch writer now records bulk request size metrics covering how many bulk requests are sent and how large they are. Pull request #9787
- Apache Thrift was updated to v0.25.0, addressing oversized list headers in the generated decoders. Pull request #9756
- Published container images now run with a non-root primary group instead of the root group. Pull request #9771
Why it matters
This week's release and the milestones behind it make storage behavior visible to API clients, so callers can see what a backend can search before issuing queries. Several fixes also close incorrect or unsafe behavior, including span search sorting, filter routing to SQL, and tracing data paths through remote storage and MCP tool calls. For people running Jaeger, the changes reduce surprising results and harden the storage and container layers.
Changelog entry
- Release v2.22.0. Release
- Build(idl): bump jaeger-idl to v0.14.0, adding the
api_v3Capabilities service. Pull request #9802 - Feat(query): serve storage search capabilities over
api_v3gRPC. Pull request #9803 - Feat(query): serve storage search capabilities over
api_v3HTTP. Pull request #9804 - Feat(clickhouse): route structured query filters to SQL WHERE. Pull request #9701
- Feat(es): declare span search and pagination. Pull request #9729
- Fix(es): turn off the span search id tie-breaker by default. Pull request #9783
- Feat(es): record bulk request size metrics for the Elasticsearch writer. Pull request #9787
- Fix(deps): update Apache Thrift to v0.25.0. Pull request #9756
- Fix(docker): run images with a non-root primary group. Pull request #9771
- Fix(storage): sanitize remote storage exports. Pull request #9062
- Fix(query): treat non-string library attributes as conflicts instead of panicking. Pull request #9765
Release v2.22.0 is out. Storage search capabilities now reach api_v3 over gRPC and HTTP, ClickHouse routes structured filters into SQL WHERE, and ES/OpenSearch no longer tie-break span search by document id by default. Filter tests and PromQL escaping also improved.
Release v2.22.0 is out this week. On top of it, Jaeger now exposes storage search capabilities over both api_v3 gRPC and HTTP, and the ClickHouse reader routes structured query filters into SQL WHERE clauses rather than folding them into a legacy shape. The Elasticsearch and OpenSearch reader declares span search, sorting and pagination capabilities, and the span search document id tie-breaker is now off by default. We also landed fixes for remote storage exports, MCP tool call spans, service name escaping in PromQL matchers, index name escaping in delete requests, and non-root primary groups for published images.
Week of September 28, 2026
What shipped
- RFC 0016 specifies a FindSpans-only
order_bycontract for start time, duration, trace ID and span ID with expression-plus-direction IDL shape and deterministic tie-breakers. Pull request #9667 - Query service validates and binds span ordering, normalizing explicit terms and appending deterministic tie-breakers for effective ordering. Pull request #9669
- Storage gRPC FindSpans client and server implementation forwards ordered terms, span chunks, continuation tokens and search capabilities. Pull request #9670
- API v3 gRPC and HTTP routes expose FindSpans ordering, with invalid terms returning InvalidArgument or HTTP 400. Pull request #9671
- Memory storage executes caller-selected FindSpans ordering and advertises SpanSorting capability. Pull request #9672
- Span search implementation in the Elasticsearch core reader (RFC 0016 M4) with sort lowering for M11. Pull request #9704
- Elasticsearch span sort ties now broken on backing index and document ID with configurable
span_search_tie_break_by_id. Pull request #9720 - Release workflow now drafts GitHub releases automatically when the prepare PR merges, removing a manual step. Pull request #9740
- Elasticsearch configuration no longer accepts top-level
tags_as_fields; users must move it under indices.spans.tags_as_fields. Pull request #9693 - Remote storage service flags removed; jaeger-remote-storage must now configure from confmap-decoded file instead. Pull request #9699
Why it matters
Span ordering is now fully implemented across query, storage gRPC, and backends, allowing callers to retrieve spans in their preferred order. Elasticsearch span search (RFC 0016 M4) progresses toward completion with tie-breaking, and release automation removes manual steps from the release process.
Changelog entry
- RFC 0016 defines FindSpans caller-selected span ordering contract with start time, duration, trace ID and span ID fields. Pull request #9667
- Query service validates and normalizes span ordering with deterministic tie-breakers and order-bound continuation tokens. Pull request #9669
- Storage gRPC implements FindSpans client and server with ordered terms, span chunks and continuation tokens. Pull request #9670
- API v3 exposes FindSpans ordering through gRPC and HTTP with validation of terms and directions. Pull request #9671
- Memory storage executes caller-selected FindSpans ordering and advertises SpanSorting capability. Pull request #9672
- Elasticsearch implements span search in core reader (RFC 0016 M4) with sort lowering. Pull request #9704
- Elasticsearch span sorts now tie-break on backing index and document ID via configurable
span_search_tie_break_by_id. Pull request #9720 - Release workflow automatically drafts GitHub releases when prepare PR merges. Pull request #9740
- Elasticsearch configuration moved
tags_as_fieldsunder indices.spans; top-level setting no longer supported. Pull request #9693 - Remote storage service removes flags; requires confmap-decoded configuration file. Pull request #9699
- Memory storage SamplingStore read methods now use read locks instead of exclusive locks. Pull request #9005
- Fixed malformed error messages in jaegerquery and remotestorage Start() methods. Pull request #8882
Span ordering ships in query, gRPC storage, and memory backend with RFC 0016 contract. Elasticsearch span search progresses (M4) with tie-breaking. Release automation drafts GitHub releases automatically.
This week adds caller-selected span ordering across the query service, gRPC storage layer, and backends, implementing RFC 0016's FindSpans contract with deterministic tie-breakers and order-bound continuation tokens. Elasticsearch span search implementation (RFC 0016 M4) now includes sort tie-breaking on backing index and document ID. Release automation improvements remove manual steps from the release process. Two breaking changes update Elasticsearch configuration structure and remote storage setup.
Week of September 21, 2026
What shipped
- The memory backend now supports FindSpans and search pagination, completing M3 of RFC 0016 Span Search as the first reader to declare SpanSearch capability. Pull request #9611
- The
api_v3FindSpans handler and HTTP route are now available, completing M2 of RFC 0016 Span Search. Pull request #9613 - RFC 0014 page tokens are now defined and returned by paginating readers, establishing the shared format for pagination across storage backends. Pull request #9655
- The
jaeger_storage_writerconnector now handles dead-letter rejection of spans in Elasticsearch, completing RFC 0007 M5. Pull request #9604 - Search query validation moved into the query service, eliminating duplicate validation logic across multiple API handlers. Pull request #9612
- A timeout from gRPC storage v2 configuration is now applied to storage calls, preventing indefinite blocking on remote storage hangs. Pull request #9638
- The native Elasticsearch trace summaries feature gate promoted from Beta to Stable. Pull request #9609
- The structured filters feature gate promoted from Alpha to Beta, enabling RFC 0005 filter syntax by default. Pull request #9607
- RFC 0018 proposes streaming responses for the API v3 HTTP gateway to avoid buffering full result sets. Pull request #9620
- Fixed TracesData.MarshalToSizedBuffer writing to buffer head instead of tail, correcting sized-buffer convention usage. Pull request #9629
Why it matters
Span search moves from interface design into working storage backends, pagination establishes a shared format across readers, and dead-letter handling completes lossless pipeline support. Feature gates advance from experimental to stable as code matures, while infrastructure fixes address timeout handling and buffer serialization.
Changelog entry
- Memory backend now implements FindSpans with pagination support (RFC 0016 M3) Pull request #9611
- Added
api_v3FindSpans gRPC handler and HTTP route (RFC 0016 M2) Pull request #9613 - Defined RFC 0014 page tokens for paginating reader responses Pull request #9655
- Added
jaeger_storage_writerconnector for dead-letter span handling (RFC 0007 M5) Pull request #9604 - Centralized search query validation in query service Pull request #9612
- Apply configured timeout to gRPC storage calls Pull request #9638
- Promoted jaeger.es.nativeTraceSummaries to Stable Pull request #9609
- Promoted jaeger.query.structuredFilters to Beta Pull request #9607
- Changed SearchDepth and PageSize to unsigned in internal query types Pull request #9642
- Added shared pagination integration tests for direct and e2e modes Pull request #9664
Span search reaches memory backend, pagination tokens standardized, and dead-letter handling completes lossless pipelines. Structured filters graduate to beta, native trace summaries to stable.
Week 40 advances RFC 0016 Span Search with FindSpans in memory storage and complete API v3 handlers, while RFC 0014 pagination establishes shared token format across readers. Dead-letter connector completes RFC 0007 lossless pipeline support. Feature gates progress: structured filters to beta, native trace summaries to stable. Fixes improve timeout handling and serialization correctness.
Week of September 14, 2026
What shipped
- Released v2.21.0 with breaking changes including removal of v1 HTTP endpoints, restructured AI MCP configuration, and rejection of unsupported Elasticsearch config keys at startup. Release
- Promoted the omitParentSpanIDReference gate to Beta for Elasticsearch/OpenSearch, controlling whether redundant synthetic CHILD_OF references are stored. Pull request #9586
- Added SearchSpans capability and FindSpans reader method as the first part of RFC 0016 span search implementation. Pull request #9578
- Generalized paginated reader results by replacing span-specific page results with generic PageChunk[T] across FindSpans, FindTraceIDs, and FindTraceSummaries. Pull request #9585
- Added Elasticsearch/OpenSearch support to index attribute values as numbers and order predicates on them instead of lexicographic comparison. Pull request #9321
- Fixed archive trace handling to prevent archiving traces that exist only in archive storage by reading ArchiveTrace requests only from primary storage. Pull request #9391
- Fixed double separator issue when index-prefix already ends with dash in Elasticsearch rollover and index cleaner tools. Pull request #9551
- Added validation to reject non-positive unit-count in jaeger-es-rollover lookback action to prevent cutoff date calculation errors. Pull request #9568
- Updated jaeger-idl to v0.12.0 to include FindSpans RPC entities for RFC 0016 M1. Pull request #9569
- Added labeled trace fixtures and end-to-end coverage tests for built-in query skills detect-n-plus-one and error-root-cause. Pull request #9263
Why it matters
V2.21.0 is released with breaking changes and new span search capabilities. The paginated reader refactoring unifies how results flow through query and storage layers. Elasticsearch attribute indexing as numbers enables range queries to work correctly instead of lexicographically.
Changelog entry
- BREAKING: Removed v1 HTTP endpoints no longer used by the UI Release
- BREAKING: Replaced ai.enable_mcp with optional ai.mcp config block Release
- BREAKING: Reject five unsupported Elasticsearch configuration keys at startup Release
- Promoted omitParentSpanIDReference gate to Beta for Elasticsearch/OpenSearch Pull request #9586
- Added SearchSpans to capabilities and FindSpans to Reader interface (RFC 0016 M2 part 1) Pull request #9578
- Generalized paginated reader results with generic PageChunk[T] Pull request #9585
- Index attribute values as numbers in Elasticsearch/OpenSearch for correct range query ordering Pull request #9321
- Fixed archive trace handling to prevent archiving traces existing only in archive storage Pull request #9391
- Fixed double separator in index-prefix for Elasticsearch rollover and index cleaner Pull request #9551
- Validate non-positive unit-count in jaeger-es-rollover lookback action Pull request #9568
Jaeger v2.21.0 is out. Span search (RFC 0016) is underway, Elasticsearch attributes now index as numbers for range queries, and paginated results are generalized across all reader methods.
Jaeger v2.21.0 ships with breaking changes: v1 HTTP endpoints removed, AI config restructured, and unsupported ES configs rejected at startup. New capabilities include paginated reader results unified across all methods and span search (RFC 0016) implementation starting with RFC 0016 M2. Elasticsearch storage now indexes attribute values as numbers, fixing range queries that previously compared lexicographically.