Jaeger
v2.21.0Observability2026年9月14日
APIと設定に互換性のない変更があり、検索やストレージの試験的な機能が拡張されています。正確性の修正と通常の依存関係更新も含まれます。
要対応 (1)
breaking
searchdepthの入力範囲を制限searchdepthの上限を10000に設定し、負の値を拒否します。
影響確認 (4)
breaking
v1 http endpointsの削除v1 http endpointsを利用している場合に該当します。UIから呼び出されなくなったため、
v1 http endpointsを削除します。breakingMCP設定の変更
ai.を設定している場合に該当します。enable_mcp ai.を廃止し、任意のenable_mcp ai.設定ブロックに置き換えます。mcp breaking未対応のElasticsearch設定キーを起動時に拒否
適用対象はリリースノートに明記されていません。
未対応のElasticsearch設定キー5個を、起動時に拒否します。
breaking処理できない検索の拒否
適用対象はリリースノートに明記されていません。
ストレージバックエンドが処理できない検索を拒否します。
その他の記録済み変更 64 件すべてfixes 29 · additions 18 · value changes 10 · constraints 3 · renames 2 · defaults 1 · removals 1
fixes (29)
- * Fix(memory): match unset-status spans in error=false trace search ([@hharshhsaini](https://github.com/hharshhsaini) in [#9096](https://github.com/jaegertracing/jaeger/pull/9096))
- * Fix(anonymizer): register the gogo codec ([@DsThakurRawat](https://github.com/DsThakurRawat) in [#9540](https://github.com/jaegertracing/jaeger/pull/9540))
- * Fix(es): surface failed _msearch items instead of dropping traces silently ([@hharshhsaini](https://github.com/hharshhsaini) in [#9008](https://github.com/jaegertracing/jaeger/pull/9008))
- * Fix(mcp): use inclusive bound for critical path child search ([@Harizz076](https://github.com/Harizz076) in [#9174](https://github.com/jaegertracing/jaeger/pull/9174))
- * Fix(anonymizer): read the writer's zero-span capture without panicking ([@DsThakurRawat](https://github.com/DsThakurRawat) in [#9528](https://github.com/jaegertracing/jaeger/pull/9528))
- * Validate targetsamplespersecond is positive ([@Atul-Koundal](https://github.com/Atul-Koundal) in [#9379](https://github.com/jaegertracing/jaeger/pull/9379))
- * Fix(es-index-cleaner): quote index prefix in index name pattern ([@DsThakurRawat](https://github.com/DsThakurRawat) in [#9525](https://github.com/jaegertracing/jaeger/pull/9525))
- * Fix(mcp): respect search_depth when maxresults is unlimited (0) ([@shashankvarma499](https://github.com/shashankvarma499) in [#9517](https://github.com/jaegertracing/jaeger/pull/9517))
- * Es tracestore: set flags("none") on tag regexpquery (#9387) ([@SHIVANSH-ux-ys](https://github.com/SHIVANSH-ux-ys) in [#9454](https://github.com/jaegertracing/jaeger/pull/9454))
- * Fix(otel-demo): upgrade opensearch to 3.7.0 ([@jkowall](https://github.com/jkowall) in [#9397](https://github.com/jaegertracing/jaeger/pull/9397))
- * Fix(es): clear the span writer's service cache in purge ([@ysh-bot](https://github.com/ysh-bot) in [#9416](https://github.com/jaegertracing/jaeger/pull/9416))
- * Fix(telemetry): trace the jaeger_storage extension ([@ysh-bot](https://github.com/ysh-bot) in [#9414](https://github.com/jaegertracing/jaeger/pull/9414))
- * Fix(otel-demo): harden dashboards rollout diagnostics ([@jkowall](https://github.com/jkowall) in [#9393](https://github.com/jaegertracing/jaeger/pull/9393))
- * Fix(query): name server spans after the route when middleware copies the request ([@ysh-bot](https://github.com/ysh-bot) in [#9406](https://github.com/jaegertracing/jaeger/pull/9406))
- * Fix(es): bound service and operation query lookback ([@ekagra1602](https://github.com/ekagra1602) in [#9400](https://github.com/jaegertracing/jaeger/pull/9400))
- * Fix(mcp): cap read_skill output at max_read_file_size ([@CedricConday](https://github.com/CedricConday) in [#8993](https://github.com/jaegertracing/jaeger/pull/8993))
- * Fix(clickhouse): apply config defaults at unmarshal so explicit zeros survive ([@ysh-bot](https://github.com/ysh-bot) in [#9345](https://github.com/jaegertracing/jaeger/pull/9345))
- * Fix(otel-demo): expand opensearch volume online ([@jkowall](https://github.com/jkowall) in [#9315](https://github.com/jaegertracing/jaeger/pull/9315))
- * Fix(ai-gateway): preserve message boundaries when reading acp over websocket ([@SoumyaRaikwar](https://github.com/SoumyaRaikwar) in [#9296](https://github.com/jaegertracing/jaeger/pull/9296))
- * Fix(memory): return copies of stored traces, not references ([@ysh-bot](https://github.com/ysh-bot) in [#9261](https://github.com/jaegertracing/jaeger/pull/9261))
- * Fix(es): return non-error traces for error=false search ([@hharshhsaini](https://github.com/hharshhsaini) in [#9210](https://github.com/jaegertracing/jaeger/pull/9210))
- * Fix(apiv3): return notfound for missing trace ([@ADITYA-CODE-SOURCE](https://github.com/ADITYA-CODE-SOURCE) in [#9151](https://github.com/jaegertracing/jaeger/pull/9151))
- * Fix(es): add spanid tie-breaker to trace-read search_after pagination ([@hharshhsaini](https://github.com/hharshhsaini) in [#9063](https://github.com/jaegertracing/jaeger/pull/9063))
- * Fix(elasticsearch): use post instead of get for _msearch requests ([@magic-peach](https://github.com/magic-peach) in [#9027](https://github.com/jaegertracing/jaeger/pull/9027))
- * Fix(es): restore gzip compression of elasticsearch request bodies ([@iammdzaidalam](https://github.com/iammdzaidalam) in [#9072](https://github.com/jaegertracing/jaeger/pull/9072))
- * Fix(query): let membership against an attribute reach the backend untyped ([@ysh-bot](https://github.com/ysh-bot) in [#9459](https://github.com/jaegertracing/jaeger/pull/9459))
- * Fix(es): pin the flags on the regexp query ([@DsThakurRawat](https://github.com/DsThakurRawat) in [#9383](https://github.com/jaegertracing/jaeger/pull/9383))
- * Fix(es): write the data stream @timestamp as an rfc 3339 string ([@Me-Priyank](https://github.com/Me-Priyank) in [#9363](https://github.com/jaegertracing/jaeger/pull/9363))
- * Fix(es): treat a bulk 409 as an idempotent success in the sync writer ([@Me-Priyank](https://github.com/Me-Priyank) in [#9113](https://github.com/jaegertracing/jaeger/pull/9113))
additions (18)
- * Feat(es): accept --feature-gates in esmapping-generator and es-rollover init ([@ysh-bot](https://github.com/ysh-bot) in [#9546](https://github.com/jaegertracing/jaeger/pull/9546))
- * Feat(es): add optional index.mapping.total_fields.limit to the span index template ([@zarna1parekh](https://github.com/zarna1parekh) in [#9523](https://github.com/jaegertracing/jaeger/pull/9523))
- * Feat(ai-gateway): send configurable headers on the acp agent handshake ([@SoumyaRaikwar](https://github.com/SoumyaRaikwar) in [#9395](https://github.com/jaegertracing/jaeger/pull/9395))
- * Fix(otel-demo): allow explicit opensearch recovery waiver ([@jkowall](https://github.com/jkowall) in [#9313](https://github.com/jaegertracing/jaeger/pull/9313))
- * Fix(otel-demo): add tested opensearch recovery gate ([@jkowall](https://github.com/jkowall) in [#9306](https://github.com/jaegertracing/jaeger/pull/9306))
- * Feat(es): add optional poison-pill drop for synchronous writes ([@ysh-bot](https://github.com/ysh-bot) in [#9109](https://github.com/jaegertracing/jaeger/pull/9109))
- * Feat(es): warn on misaligned synchronous-write batch sizing ([@ysh-bot](https://github.com/ysh-bot) in [#9098](https://github.com/jaegertracing/jaeger/pull/9098))
- * Feat(es): index attribute values as numbers and order predicates on them ([@ysh-bot](https://github.com/ysh-bot) in [#9321](https://github.com/jaegertracing/jaeger/pull/9321))
- * Feat(ai-gateway): serve both mcp mounts from one server and reap its sessions ([@Nabil-Salah](https://github.com/Nabil-Salah) in [#9216](https://github.com/jaegertracing/jaeger/pull/9216))
- * Feat(es): render and create span data-stream composable templates ([@Me-Priyank](https://github.com/Me-Priyank) in [#8991](https://github.com/jaegertracing/jaeger/pull/8991))
- * Feat(es): implement the structured query filter ([@ysh-bot](https://github.com/ysh-bot) in [#9350](https://github.com/jaegertracing/jaeger/pull/9350))
- * Feat(query): convert a filter between the wire and the ast ([@ysh-bot](https://github.com/ysh-bot) in [#9355](https://github.com/jaegertracing/jaeger/pull/9355))
- * Feat(query): add a fluent builder for structured query filters ([@yurishkuro](https://github.com/yurishkuro) in [#9354](https://github.com/jaegertracing/jaeger/pull/9354))
- * Feat(jaegerquery): serve operator skills from ai.skills_dir under custom/ ([@SoumyaRaikwar](https://github.com/SoumyaRaikwar) in [#9169](https://github.com/jaegertracing/jaeger/pull/9169))
- * Feat(ai-gateway): announce the session-scoped mcp endpoint to the sidecar over http ([@Nabil-Salah](https://github.com/Nabil-Salah) in [#9009](https://github.com/jaegertracing/jaeger/pull/9009))
- * Feat(es): add write_mode config to select synchronous elasticsearch writes ([@ysh-bot](https://github.com/ysh-bot) in [#9093](https://github.com/jaegertracing/jaeger/pull/9093))
- * Feat(query): add pluggable pre/post query interceptor extension point ([@ysh-bot](https://github.com/ysh-bot) in [#9024](https://github.com/jaegertracing/jaeger/pull/9024))
- serve a filter query in the shape the backend understands
value changes (10)
- * Feat(clickhouse): promote clickhouse storage feature gate to stable ([@ysh-bot](https://github.com/ysh-bot) in [#9058](https://github.com/jaegertracing/jaeger/pull/9058))
- * Feat(mcptools): add gen_ai.tool.call.arguments/result to the gateway's mcp tool-call span ([@SoumyaRaikwar](https://github.com/SoumyaRaikwar) in [#9304](https://github.com/jaegertracing/jaeger/pull/9304))
- * Feat(storage): let remote storage report its search capabilities ([@ysh-bot](https://github.com/ysh-bot) in [#9269](https://github.com/jaegertracing/jaeger/pull/9269))
- * Feat(jaegerai): add gen_ai.tool.call.arguments/result to sidecar tool-call spans ([@SoumyaRaikwar](https://github.com/SoumyaRaikwar) in [#9011](https://github.com/jaegertracing/jaeger/pull/9011))
- * Feat(es): add deterministic content-hash _id for idempotent span writes ([@ysh-bot](https://github.com/ysh-bot) in [#9094](https://github.com/jaegertracing/jaeger/pull/9094))
- * Feat(query): return a context from query interceptor hooks ([@ysh-bot](https://github.com/ysh-bot) in [#9082](https://github.com/jaegertracing/jaeger/pull/9082))
- * Feat(query): show a query interceptor every predicate as a filter ([@ysh-bot](https://github.com/ysh-bot) in [#9360](https://github.com/jaegertracing/jaeger/pull/9360))
- * Feat(storage): carry the filter and its capabilities over remote storage ([@ysh-bot](https://github.com/ysh-bot) in [#9358](https://github.com/jaegertracing/jaeger/pull/9358))
- * Feat(storage): let a reader declare which filters it evaluates ([@ysh-bot](https://github.com/ysh-bot) in [#9356](https://github.com/jaegertracing/jaeger/pull/9356))
- * Chore(deps): update dependency prometheus-client to v0.26.0 ([@renovate[bot]](https://github.com/apps/renovate) in [#9501](https://github.com/jaegertracing/jaeger/pull/9501))
constraints (3)
- * Feat(mcp): let search_traces omit the service name ([@ysh-bot](https://github.com/ysh-bot) in [#9262](https://github.com/jaegertracing/jaeger/pull/9262))
- * Feat(storage): let backends declare that search can omit the service name ([@ysh-bot](https://github.com/ysh-bot) in [#9256](https://github.com/jaegertracing/jaeger/pull/9256))
- * Feat(query): accept a structured filter on api_v3 trace search ([@ysh-bot](https://github.com/ysh-bot) in [#9359](https://github.com/jaegertracing/jaeger/pull/9359))
renames (2)
- * Feat(featuregate): normalize Jaeger gate names ([@maindevhoon](https://github.com/maindevhoon) in [#9037](https://github.com/jaegertracing/jaeger/pull/9037))
- * Feat(es): rewire sniffing.enabled and log_level onto the esclient transport ([@ysh-bot](https://github.com/ysh-bot) in [#9077](https://github.com/jaegertracing/jaeger/pull/9077))
defaults (1)
- * Fix(query): default search_depth in api_v3 grpc handler ([@vyncint](https://github.com/vyncint) in [#9100](https://github.com/jaegertracing/jaeger/pull/9100))
removals (1)
- * Fix(storage): remove the duplicate otelgrpc handler on the storage client ([@ysh-bot](https://github.com/ysh-bot) in [#9417](https://github.com/jaegertracing/jaeger/pull/9417))
Jaegerをスタックに追加
対応が必要なリリースが出たときに、週次メールでお知らせします。 今回の破壊的変更も、その一例です。