github jaegertracing/jaeger v2.22.0
Release v2.22.0

4 hours ago

Backend Changes

⛔ 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)

✨ New Features

🐞 Bug fixes, Minor Improvements

  • Fix(memory): skip same-service parents when building dependency links (@lopster568 in #9090)
  • Fix(es-rollover): reject unknown --unit values in lookback (takeover #9442) (@jkowall in #9732)
  • Fix(jaegerquery,remotestorage): remove nil error wrap in start() (@g-k-s-03 in #8882)
  • Fix(memory): use read locks for read-only samplingstore methods (@shayannab in #9005)
  • Fix(es): return an error for a nil predicate instead of panicking (@RudraDudhat2509 in #9709)
  • Feat(es): break span sort ties on the backing index and document id (@baroquebobcat in #9720)
  • Feat(es): search spans in the core reader (@baroquebobcat in #9704)
  • Fix(release): re-enable slsa provenance with valid tag reference (#9046) (@Kartikupadhyay44 in #9702)
  • Feat(es): wire span search through the elasticsearch reader (@baroquebobcat in #9700)
  • Feat(es): lower starttime comparisons into filter (rfc 0016 m4) (@baroquebobcat in #9697)
  • Fix(ai-sidecar): point default mcp url to query port 16686 (@rautaditya2606 in #9658)
  • Fix(memory): validate positive maxtraces (@DsThakurRawat in #9634)
  • Fix(es): gate attribute ordering separately from typed attribute indexing (@ysh-bot in #9690)
  • Fix(query): answer capability refusals with unimplemented instead of invalidargument (@ysh-bot in #9685)
  • Fix(storage): apply timeout to grpc storage calls (@anishmehta24 in #9638)
  • Fix(remotesampling): reject non-positive leader election lease refresh intervals (@pujitha24 in #9647)
  • Fix(es): give the sync batch size half of the bulk cap as headroom (@ysh-bot in #9645)
  • Fix(jptrace): tracesdata.marshaltosizedbuffer writes to buffer head instead of tail (@om7057 in #9629)
  • Fix(config): batch and block on overflow in the kafka ingester configurations (@ysh-bot in #9624)
  • Fix(query): copy the whole pagination struct before clamping (@ysh-bot in #9618)
  • Fix(query): clamp the page size on a copy rather than through the caller pointer (@ysh-bot in #9617)
  • Feat(query): admit rfc 0014 pagination into the query path (@om7057 in #9450)
  • Feat(es): support span.traceid and span.spanid in structured filters (@prajak002 in #9610)
  • Fix(anonymizer): write ui trace file when max-spans-count is reached (@DsThakurRawat in #9567)
  • Feat(query): add findspans to the query service (@baroquebobcat in #9581)
  • Fix(mcp): reject negative durations in search_traces before querying (@pujitha24 in #9575)
  • Fix(mcp): back off to a rune boundary when truncating read_skill (@om7057 in #9589)
  • Fix(query): refuse a trace filter that a later interceptor drops (@ysh-bot in #9606)
  • Fix(es): prevent service-operation key collisions (@SaadShakeel1 in #9440)
  • Fix(elasticsearch): support ordered built-in text filters (@alishair7071 in #9477)
  • Fix(samplingstore): propagate write errors in insertthroughput and insertprobabilitiesandqps (@shashankvarma499 in #9533)
  • Fix(es): retry failed writes in the synchronous kafka ingester config (@ysh-bot in #9593)
  • Feat(query): add the rfc 0014 pagination contract to tracestore (@om7057 in #9570)
  • Fix(es-rollover): reject non-positive unit-count in lookback action (@DsThakurRawat in #9568)
  • Test(jaegerquery): add labeled trace fixtures and e2e coverage for the built-in skills (@SoumyaRaikwar in #9263)
  • Fix(query): prevent archiving archive-only traces (@jkowall in #9391)
  • Fix(es): do not double the separator when index-prefix already ends in "-" (@pujitha24 in #9551)
  • Fix(tracegen): validate attr-keys and attr-values to prevent divide-by-zero (@shashankvarma499 in #9545)

🚧 Experimental Features

  • Feat(storage): add findspans and search pagination to the memory backend (@om7057 in #9611)
  • Feat(storage): add the rfc 0014 page token that paginating readers return (@ysh-bot in #9655)
  • Feat(query): add the api_v3 findspans handler and http route (@om7057 in #9613)
  • Feat(es): add the jaeger_storage_writer connector to dead-letter rejected spans (@ysh-bot in #9604)
  • Feat(es): report terminally rejected bulk items in a typed error (@ysh-bot in #9598)
  • Feat(query): rfc 0016 m2 - pt 1 - add searchspans to capabilities and findspans to reader (@baroquebobcat in #9578)

👷 CI Improvements

  • Feat(release): draft the github release when the prepare pr merges (@albertteoh in #9740)
  • Ci(backward-compat): build the earlier revision from the latest release tag instead of main (@alishair7071 in #9547)
  • Ci(test): raise the storage integration test timeout to 20 minutes (@ysh-bot in #9680)
  • Ci: check out the default branch explicitly in the pr quota workflow (@ysh-bot in #9591)
  • Test(integration): support explicit upgrade scenarios in backward-compatibility harness (@Kartikupadhyay44 in #9566)

⚙️ Refactoring

  • Refactor(memory): give filter values a kind instead of one flag per type (@ysh-bot in #9677)
  • Refactor(tracestore): make searchdepth and pagesize unsigned on internal query types (@Kartikupadhyay44 in #9642)
  • Refactor(query): give the query service its own request types (@ysh-bot in #9654)
  • Refactor(jptrace): share the hex trace and span id parsers (@ysh-bot in #9632)
  • Refactor(exporter): register jaeger_storage_exporter as a connector with a dead-letter output (@ysh-bot in #9622)
  • Refactor(storage): export the storage exporter's write core as tracewriter (@ysh-bot in #9599)
  • Refactor(query): name search query fields in plain english in refusals (@ysh-bot in #9616)
  • Refactor(query): validate a search query once in the query service alone (@ysh-bot in #9612)
  • Refactor(storage): generalize paginated reader results (@ysh-bot in #9585)

📖 Documentation

  • Docs(rfc): mark rfc 0016 m3 delivered (@ysh-bot in #9759)
  • Docs(rfc): split the deferred kafka consumer milestone into receiver-level batching and a worker pool (@ysh-bot in #9696)
  • Docs(rfc): record the es/os pagination and tie-breaking decisions for span search (@ysh-bot in #9691)
  • Docs(rfc): state the single-value rule that attribute ordering must settle (@ysh-bot in #9679)
  • Docs(rfc): specify caller-selected span ordering (@ysh-bot in #9667)
  • Docs(rfc): record the delivered rfc 0014 m2 plumbing (@ysh-bot in #9630)
  • Docs(adr): record synchronous elasticsearch writes and lossless pipelines in adr-014 (@ysh-bot in #9621)
  • Docs(rfc): propose streaming responses for the api v3 http gateway (@ysh-bot in #9620)
  • Docs(rfc): compare the clickhouse schema with the clickstack exporter schema (@ysh-bot in #9596)
  • Docs(rfc): unify paginated reader results (@ysh-bot in #9584)

📊 UI Changes

🐞 Bug fixes, Minor Improvements

  • Fix(trace): prevent call-stack overflow on deeply nested traces (@jkowall in #4554)
  • Fix(model): align parentage with the backend (@ysh-bot in #4569)
  • Fix(jaeger-ui): guard missing array fields in otelspanfacade (@abhayrajjais01 in #4323)
  • Fix(dependencygraph): include lookback in view traces url to prevent 400 error. (@kams19-ops in #4151)
  • Feat(genai): add a json (deep) view that unwraps embedded json (@ysh-bot in #4544)
  • Fix(genai): accept bare gen_ai.input and gen_ai.output (@ysh-bot in #4542)
  • Fix(flamegraph): preserve search highlighting when collapsing nodes above (@padmasri-web in #4529)
  • Fix(api/v3): drop out-of-range search timestamps gracefully (@padmasri-web in #4508)
  • Fix: improve image alt text (@Piyush4801 in #4524)
  • Fix: optimize span index to row index lookup (@Safian62 in #4500)
  • Fix: correct deep dependencies endpoint (@Safian62 in #4484)
  • Feat(api/v3): validate v3 trace wire contract at boundary (@sksingh2005 in #4455)
  • Fix(trace-timeline): make span-details divider draggable from the header (@KKamJi98 in #4412)

👷 CI Improvements

⚙️ Refactoring

Don't miss a new jaeger release

NewReleases is sending notifications on new releases.