github jaegertracing/jaeger v2.23.0
Release v2.23.0

3 hours ago

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)

👷 CI Improvements

  • Fix(demo): give otel demo checkout enough memory to serve orders (@jkowall in #10005)
  • Ci(publish): stop trusting fork ci summary artifacts (@jkowall in #9998)
  • Fix(ci): let manual release runs build a given ref and flag commits past the tag (@albertteoh in #9985)
  • Fix(ci): give the execution-mode step a token so the trust checks can call the api (@ysh-bot in #10013)
  • Fix(ci): restore the clickhouse metrics snapshot filename (@jkowall in #9951)
  • Chore(query): move the last v1 trace callers to the v3 api (@sksingh2005 in #10004)
  • Fix(release): harden prepare.sh and start.sh against release-manager mistakes (@albertteoh in #9986)
  • Feat(ocb): wire build-ocb to the workspace overwrite pattern (@iammdzaidalam in #8871)
  • Ci: limit active prs per issue (@Harizz076 in #9800)
  • Feat(clickhouse): test both supported clickhouse lts lines in ci (@ysh-bot in #9893)

⚙️ Refactoring

  • Refactor(query): split the gateway's streamingclient into aguirun and acpclient (@ysh-bot in #10017)
  • Chore(safeexpvar): remove the unused package (@AnKiT-GaRG2 in #9829)
  • Refactor(query): move the ai configuration and routes into jaegerai (@ysh-bot in #9907)
  • Refactor(clickhouse): name the search stages and share one rows loop (@ysh-bot in #9899)

📖 Documentation

  • Docs(remote-storage): document the grpc port as a trusted interface (@jkowall in #9872)
  • Docs(security): refresh threat model (@jkowall in #9821)
  • Docs(release): land due feature-gate transitions before preparing a release (@albertteoh in #9984)
  • [badger] document span kind index design in rfc 0020 (@Audio431 in #8402)
  • Docs(rfc): name what the legacy filter rewrite carries for the flat backends (@ysh-bot in #9960)
  • Docs(rfc): keep the flat backends on the legacy filter rewrite (@ysh-bot in #9959)
  • Docs(mcp): document endpoint exposure and security setup (@shantanu-1607 in #9828)
  • Docs(rfc): propose configurable clickhouse attribute hoisting (@rishabhkumar92 in #9902)
  • Chore(clickhouse): pin images to the 26.8 lts line and link the policy to the pins (@ysh-bot in #9892)
  • Docs(ai): require goose v1.55.0 for trace propagation (@ysh-bot in #9867)
  • Docs(rfc): define the text-search operators and how a new operator lands (@ysh-bot in #9758)

📊 UI Changes

⛔ Breaking Changes

✨ New Features

🐞 Bug fixes, Minor Improvements

👷 CI Improvements

  • Ci(lint): check that the node.js version pins agree (@ysh-bot in #4703)

⚙️ Refactoring

Don't miss a new jaeger release

NewReleases is sending notifications on new releases.