Jaeger

Developer Tools

An open-source distributed tracing platform born at Uber.

Latest v2.20.0 · by CNCFWebsitejaegertracing/jaeger

Release activity

Release activity — 10 releases across 9 days since Dec 3, 2025. Each cell is one day; darker means more releases that day. Nothing is recorded before Dec 3, 2025. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
MondayNo releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 20261 release on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026
TuesdayNo releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026
WednesdayNo releases on Apr 29, 2026No releases on May 6, 20261 release on May 13, 2026No releases on May 20, 2026No releases on May 27, 20261 release on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026

10 releases since Dec 3, 2025, busiest day 2

Changelog

v2.20.0

Release v2.20.0

Added 6
  • Add --backend flag to esmapping-generator for OpenSearch selection
  • Add native trace summaries (summaryreader) for Elasticsearch
  • Add synchronous bulk write primitive to the Elasticsearch client
  • Gate parentspanid reference-compat write behind a feature gate
  • Add genai span attributes and gateway↔sidecar trace propagation
  • Add bearer-token and api-key CLI flags to Elasticsearch admin tools
Changed 9
  • Promote es.* rotation and index-cleaner feature gates to beta
  • Merge jaegermcp extension into jaegerquery extension
  • Add configurable max_trace_duration and improve time-range design for Elasticsearch
  • Remove expired stable feature gates
  • Migrate template creation to esclient and retire legacy mapping rendering
  • Make "spm not configured" error message more explicit
Fixed 4
  • Reject mutually-exclusive Elasticsearch auth methods in validate()
  • Synchronize fallback token in tokenproviderwithtime closure
  • Validate decoded trace/span id lengths to prevent panic on corrupted rows in ClickHouse
  • Apply custom_headers to all Elasticsearch clients and honor host override
Removed 1
  • Remove support for Elasticsearch v6
Backend Changes
⛔ Breaking Changes
  • Feat(es): promote es.* rotation and index-cleaner feature gates to beta (@ysh-bot in #9018)
  • Feat(es): remove support for elasticsearch v6 (@yurishkuro in #8948)
  • Feat(mcp): merge jaegermcp extension into jaegerquery extension (@Nabil-Salah in #8894)
  • Feat(es): add configurable max_trace_duration and improve time-range design (@yurishkuro in #8840)
✨ New Features
  • Feat(es): add --backend flag to esmapping-generator for opensearch selection (@ysh-bot in #8985)
  • Feat(es): native trace summaries (summaryreader) (@Me-Priyank in #8812)
🐞 Bug fixes, Minor Improvements
  • Feat(es): add synchronous bulk write primitive to the elasticsearch client (@ysh-bot in #8992)
  • Feat(es): gate parentspanid reference-compat write behind a feature gate (@ysh-bot in #9015)
  • Fix(ci): resolve published snapshot shas for oke demo deploy (@FlamingSaint in #8999)
  • feat(jaegerai): add genai span attributes and gateway↔sidecar trace propagation (@SoumyaRaikwar in #8942)
  • Chore(storage): remove expired stable feature gates (@Anujkumar9081 in #8970)
  • Chore(es): scrub lingering olivere references from code comments (@ysh-bot in #8983)
  • Feat(es): migrate template creation to esclient and retire legacy mapping rendering (@Me-Priyank in #8963)
  • Fix(storage): reject mutually-exclusive es auth methods in validate() (@Anujkumar9081 in #8946)
  • Make "spm not configured" error message more explicit (@Saithej2k in #8878)
  • Feat(es): migrate span writes onto an owned bounded bulk indexer (@yurishkuro in #8944)
  • Fix(auth): synchronize fallback token in tokenproviderwithtime closure (@yurishkuro in #8952)
  • Feat(es): migrate service/operation reads onto owned searcher and query ast (@yurishkuro in #8943)
  • [es] add bearer-token and api-key cli flags to es admin tools (rfc 0006 m3.5c) (@yurishkuro in #8939)
  • [es] route admin plane through the shared auth stack (rfc 0006 m3.5b) (@yurishkuro in #8937)
  • Fix(clickhouse): validate decoded trace/span id lengths to prevent panic on corrupted rows (@iammdzaidalam in #8935)
  • Fix(es): apply custom_headers to all elasticsearch clients and honor host override (@iammdzaidalam in #8917)
  • Fix(storage): populate req.getbody before sigv4 signing, not after (@truffle-dev in #8768)
  • Fix(mcp): report total_count and truncated on get_services and get_span_names (@CedricConday in #8902)
  • Fix(sampling): forfeit leader lock on graceful shutdown (@HESleagacy in #8825)
  • Feat(tracestoremetrics): forward summaryreader when underlying reader supports it (@yurishkuro in #8895)
  • Feat(hotrod): add standard otel db semconv attributes to hotrod spans (@yurishkuro in #8893)
  • Fix(es): populate parentspanid field on write path (@yurishkuro in #8859)
  • Fix(mcp): don't error on empty critical path (@Me-Priyank in #8806)
  • Fix(jaegermcp): wait for server goroutine to exit on shutdown (@g-k-s-03 in #8852)
  • Fix(mcp): validate span_id format before querying backend (@truffle-dev in #8845)
  • Test(v1adapter): fix mock expectation validation in dependency reader tests (@kavyarathod05 in #8756)
  • Fix(es): improve es/os integration test ci coverage and reduce noise (@yurishkuro in #8836)
  • Fix(es): emit opensearch ism rollover_alias and consolidate backendversion (@yurishkuro in #8830)
  • Feat(query): accept base64-encoded trace ids in http api endpoints (@yurishkuro in #8828)
  • Refactor(es): introduce index rotation config schema with legacy flag deprecation (@yurishkuro in #8823)
🚧 Experimental Features
  • Feat(ai-gateway): serve per-session ui tools over the session-scoped mcp endpoint (@Nabil-Salah in #8973)
  • Feat(ai-gateway): add session-scoped mcp endpoint and session-stream registry (@Nabil-Salah in #8910)
  • Feat(jaegermcp): add read_skill tool for agent skill discovery (@SoumyaRaikwar in #8849)
  • Feat(es): add datastreamrotation strategy and data-stream-aware span write path (@Me-Priyank in #8833)
👷 CI Improvements
  • Fix(build): build embedded ui with pnpm after jaeger-ui migration (@ysh-bot in #9044)
  • Fix windows test cleanup failure: close output/error log file handles (@shayannab in #8884)
  • [chore] close idle connections for http clients in integration tests (@Manik2708 in #8815)
  • [chore]: add binary.stop() and binarypath for mid-test process control (@iammdzaidalam in #8822)
  • Feat(es): add e2e integration tests for all rotation strategies (@yurishkuro in #8838)
⚙️ Refactoring
  • Refactor(ai-gateway): apply rfc 0008 terminology — turn registry, route id, endpoint naming (@Nabil-Salah in #9017)
  • Refactor(es): introduce batch writespans api in v2 elasticsearch trace writer (@ysh-bot in #8990)
  • Feat(es): delete the olivere elasticsearch client stack (@ysh-bot in #8982)
  • Test(es): retire the detailederror olivere-error enricher (@ysh-bot in #8981)
  • Test(es): migrate the elasticsearch rotation e2e tests to the owned client (@ysh-bot in #8976)
  • Refactor(es): make esclient.client a pointer handle (@ysh-bot in #8979)
  • Test(es): migrate the direct elasticsearch integration tests to the owned client (@ysh-bot in #8975)
  • Feat(es): close idle connections on the owned elasticsearch client (@ysh-bot in #8974)
  • Feat(es): migrate the es metricstore onto the owned searcher and query ast (@ysh-bot in #8967)
  • Feat(es): migrate the es span reader onto the owned searcher and query ast (@ysh-bot in #8958)
  • Feat(es): migrate dependency store reads and writes onto owned esclient (@ysh-bot in #8957)
  • Feat(es): migrate sampling store reads and writes onto owned esclient (@yurishkuro in #8954)
  • Test(es): snapshot sampling store write requests via an injectable clock (@yurishkuro in #8955)
  • Unify elasticsearch backend version detection at client construction (rfc 0006 m4) (@iammdzaidalam in #8938)
  • Relocate the shared es roundtripper stack into the esclient package (@yurishkuro in #8936)
  • Route the elasticsearch admin client through a shared elastic-transport-go pool (@yurishkuro in #8932)
  • Rename the elasticsearch control-plane client package to esclient (@yurishkuro in #8930)
  • Add es/os request-snapshot suite baseline and converge mapping fixtures (@yurishkuro in #8922)
  • Refactor(es): thread context.context through the es rest client (@Me-Priyank in #8873)
  • Refactor(es): rename index name constants, eliminate *indexbasename (@yurishkuro in #8870)
  • Refactor(es): move index name constants to config package, drop prefix param from resolved*rotation (@yurishkuro in #8868)
  • Refactor(es): extract client construction into clientbuilder package (@yurishkuro in #8842)
  • Feat: export reusable jaegercli.newcommand for custom ocb distributions (@iammdzaidalam in #8835)
  • Refactor(es): rename rotation implementation files to rotation_{name}.go (@yurishkuro in #8839)
  • Chore(storage): remove fswatcher from elasticsearch factory (@iammdzaidalam in #8750)
  • Refactor(es): migrate depstore and metricstore to use rotation interface (@yurishkuro in #8826)
📖 Documentation
  • Rfc 0004: elasticsearch/opensearch data streams for span storage (@yurishkuro in #8804)
📊 UI Changes
✨ New Features
🐞 Bug fixes, Minor Improvements
  • Fix(genai): fix span icon hover tooltip and refine type icons and labels (@swetalin-10 in #4239)
  • Feat(timeline): emphasize span-type icons and soften tree chrome (@ysh-bot in #4238)
  • Chore(genai-tab): prefix the token usage row with "tokens:" (@swetalin-10 in #4222)
  • Fix(trace): show span pill labels as tooltips (@udita-0707 in #4220)
  • Feat(trace): expand span pills to hardcoded attribute set (@udita-0707 in #4214)
  • Fix(genai-tab): simplify and fix rendering of genai span icons (@swetalin-10 in #4221)
  • Feat(search): show and track trace search latency (@ysh-bot in #4216)
  • Refactor(otel): introduce iattributes collection replacing raw attribute arrays (@ysh-bot in #4211)
  • Feat(trace): add http status summary chips (@udita-0707 in #4149)
  • Feat(spanbarrow): add genai span type icons for llm, tool, agent, and retrieval spans (@swetalin-10 in #3857)
  • Fix(stats): make heatmap theme-aware (@jkowall in #4200)
  • Fix(listview): remove array-length pre-allocation that created holes (@dolliecoder in #4194)
  • Feat(genai-tab): add genai span detail content (@swetalin-10 in #4191)
  • Feat(utils): add genai span classification and isgenaitrace detection (@swetalin-10 in #3856)
  • Feat(monitor): sync monitor filters to url on change (@udita-0707 in #4182)
  • Fix(timeline): restore critical path hover animation in dark mode (@yurishkuro in #4180)
  • Feat(search): add absolute/relative toggle for table start time (@yurishkuro in #4175)
  • Feat(search): improve table view column sorting (@sksingh2005 in #3994)
  • Fix(filter-spans): stringify object/array attribute values for span search (@bhuvan-somisetty in #4171)
  • Fix: increase critical path bar contrast in dark mode (@bhavyamsharmaa in #4163)
  • Fix(assistant): render tool-call parts in chat thread (@SoumyaRaikwar in #4164)
  • Feat(monitor): support service/spankind/timeframe url params (@udita-0707 in #4119)
  • Feat(trace): add decorative span type icons in tree view (@swetalin-10 in #3832)
  • Fix(tracegraph): theme-aware edge and legend colors in dark mode (@bhavyamsharmaa in #4074)
  • Fix(tracepage): handle root span navigation at index 0 (@dolliecoder in #4145)
  • Fix: fix sidepanel resize when timeline is hidden (@sksingh2005 in #4046)
  • Fix(bug): clear trace id input field on navigation/reload (#4135) (@shubhtrek in #4136)
  • Refactor: standardize keyvaluepair typing across the ddg model (@shubhtrek in #4064)
  • Default to table view for search results (@yurishkuro in #4133)
  • Feat(flamegraph): resizable 50/50 table/chart split with scroll affordance (@yurishkuro in #4121)
  • Fix: copyicon button jumps/enlarges on hover (animation/layout glitch) (@akshatsinghai6682-sketch in #4022)
  • Fix(plexus): use currentcolor for ddg edge weight labels in dark mode (@shubhtrek in #4079)
  • Fix(search): keep back-to-search across find and trace id clicks (@udita-0707 in #4080)
  • Fix(monitor): replace hardcoded light-mode colors with design tokens in operations table (@udita-0707 in #4054)
  • Fix(assistant): wrap fetch passed to httpagent (@yurishkuro in #4044)
🚧 Experimental Features
  • Feat(genai): add genai tab shell to span detail panel (@swetalin-10 in #4122)
  • Feat(tracepage): add genaitimelineviewer view type with auto-activation (@swetalin-10 in #3872)
👷 CI Improvements
  • Chore(pnpm): migrate from npm to pnpm (@thisis-manan in #4137)
  • Chore(ci): route build/lint/test/coverage steps through makefile entrypoints(part of migration to pnpm) (@aprv10 in #4139)
⚙️ Refactoring
  • Refactor(search): remove dead trace redux slice and its search actions/api (@swetalin-10 in #3999)
  • Refactor(timeline): extract critical path logic into helper module (@sonalyadav1 in #4060)
  • Refactor(stats): extract computespanselftime to shared utility (@yurishkuro in #4113)
  • Refactor(ddg): use functional component for graph (@sksingh2005 in #4100)
  • Refactor:migrate virtualizedtraceview to functional component (@sksingh2005 in #4081)
  • Refactor(tracegraph): migrate to functional component (@sksingh2005 in #4058)
View originalPermalink
How v2.20.0 went
v2.19.0

Release v2.19.0

Added 9
  • Implement findtracesummaries gRPC handler in apiv3
  • Add GET /api/v3/trace-summaries endpoint for lightweight search results
  • Implement summaryreader in gRPC storage adapter
  • Add max_recv_msg_size_mib config for gRPC storage client
  • Implement ag-ui endpoint
  • Add table view as alternative to list view in search results
Changed 7
  • Support query.attributes filter in GET /api/v3/traces
  • Accept camelCase HTTP query params, keep snake_case as deprecated aliases in apiv3
  • Rename query.num_traces to query.search_depth, keep deprecated alias
  • Migrate search to /api/v3/trace-summaries
  • Replace hand-written JSON scaffolding with proto types in HTTP gateway
  • Compute trace summaries natively or fall back to full-trace aggregation in querysvc
  • Rename numtraces to searchdepth in Elasticsearch v2 dbmodel
Fixed 4
  • Fix traceID casing, add snapshot test, and default searchdepth in trace-summaries endpoint
  • Use findtraceidsrequest for findtraceids RPC in storage/v2
  • Remove misleading error wrapper in getstoragefactory
  • Fix tools API mismatch between ACP and Jaeger gateway
Backend Changes
✨ New Features
🐞 Bug fixes, Minor Improvements
  • Fix(apiv3): support query.attributes filter in get /api/v3/traces (@yurishkuro in #8687)
  • Feat(clickhouse): add tls configuration (@Pulkit7070 in #8650)
  • [clickhouse] add linter for clickhouse (@mahadzaryab1 in #8641)
  • [es] add missing scope and link fields to index templates (@Manik2708 in #8643)
  • Fix: tools api mismatch between acp and jaeger gateway (@Nabil-Salah in #8608)
  • Fix(apiv3): fix traceid casing, add snapshot test, and default searchdepth in trace-summaries endpoint (@yurishkuro in #8633)
  • Feat: add get /api/v3/trace-summaries endpoint for lightweight search results (@yurishkuro in #8604)
  • Fix(apiv3): accept camelcase http query params, keep snake_case as deprecated aliases (@yurishkuro in #8625)
  • Fix(apiv3): rename query.num_traces to query.search_depth, keep deprecated alias (@yurishkuro in #8618)
  • Ci(metrics): make pr metric diffs informational (@yurishkuro in #8605)
  • Fix(storage/v2): use findtraceidsrequest for findtraceids rpc (@yurishkuro in #8603)
  • Fix(storage): remove misleading error wrapper in getstoragefactory (@yurishkuro in #8593)
  • Feat(grpc-storage): add max_recv_msg_size_mib config for grpc storage client (@yurishkuro in #8576)
🚧 Experimental Features
  • Refactor(apiv3): replace hand-written json scaffolding with proto types in http gateway (@yurishkuro in #8646)
  • Feat(grpc): implement summaryreader in grpc storage adapter (@yurishkuro in #8642)
  • Feat(querysvc): compute trace summaries natively or fall back to full-trace aggregation (@yurishkuro in #8638)
  • Feat(jaeger): implement ag-ui endpoint (@Nabil-Salah in #8505)
👷 CI Improvements
  • Ci: reduce github actions token permissions (@jkowall in #8640)
  • Fix(ci): always use submodule for npm cache key in setup-node.js action (@yurishkuro in #8654)
  • Feat(ci): use latest jaeger-ui/main commit in snapshot builds (@yurishkuro in #8653)
  • Fix(ci): stabilize codeql check results (@jkowall in #8615)
  • Fix(lint): enforce per-file license headers (@jkowall in #8537)
⚙️ Refactoring
  • [chore] enable revive deep-exit linter rule (@abhay1999 in #8274)
  • [es] rename numtraces to searchdepth in es v2 dbmodel (@aezyus in #8611)
📖 Documentation
  • Docs(security): document fuzzing scorecard exception (@jkowall in #8637)
  • Docs(adr): add adr-010 trace summary api for lightweight search results (@yurishkuro in #8602)
  • Docs(security): document openssf hard evidence (@jkowall in #8585)
  • Docs(security): add current security review evidence (@jkowall in #8584)
📊 UI Changes
⛔ Breaking Changes
  • Feat: migrate search to /api/v3/trace-summaries (adr-010 phase 2b) (@yurishkuro in #3943)
✨ New Features
  • Feat(search): add table view as alternative to list view in search results (@yurishkuro in #3980)
🐞 Bug fixes, Minor Improvements
  • Feat(search): add reset button to clear the search form (@yurishkuro in #4009)
  • Fix(search): support legacy lookback-only search urls (@yurishkuro in #4008)
  • Fix(search): suppress trace summary columns unsupported by storage (@ghosthouse7 in #4007)
  • Fix(search): keep trace comparison selection across searches (@parshipcy in #3968)
  • Refactor(deps-graph): fold dev dataset sources into usedependenciesquery (@yurishkuro in #3993)
  • Fix(deps-graph): tidy toolbar layout and clear stale visual issues (@yurishkuro in #3992)
  • Feat(searchtracepage): resizable and collapsible search side panel (@swetalin-10 in #3984)
  • Docs(tracking): add console analytics example and improve custom analytics docs (@yurishkuro in #3988)
  • Feat(search): make default lookback configurable; reconstruct lookback from url timestamps (@yurishkuro in #3973)
  • Refactor(ui): share time range options between search and monitor (@yurishkuro in #3978)
  • Feat(search): add v3 trace-summaries api client and sort model (adr-010 phase 2b, part 1) (@yurishkuro in #3947)
  • Refactor(dev): extract routes and timeframe utils, lazy-load secondary pages (@yurishkuro in #3946)
  • Chore: bump tsconfig target from es2016 to es2020 (@yurishkuro in #3945)
  • Fix(ui): delay empty-root error check to avoid flash with react 18 (@yurishkuro in #3942)
  • Fix(ui): correct typos in accordionlinks class name and css punctuation key (@Pulkit7070 in #3905)
🚧 Experimental Features
  • Feat(config): add ai.enabled flag (default false) for ai-assisted ui (@yurishkuro in #4003)
⚙️ Refactoring
  • Refactor(ddg): convert node content to hooks (@sksingh2005 in #3948)
  • Feat(state): migrate dependencies page to react query (adr-004 2d) (@parshipcy in #3991)
  • Refactor(trace): convert timelineviewinglayer to hooks (@sksingh2005 in #3868)
  • Refactor(search): complete phase 2c discovery query keys (@parshipcy in #3966)
  • Feat(search): use /api/v3/trace-summaries for search results (@yurishkuro in #3964)
  • Fix(search): replace singleton cache with keyed cache + eviction for trace search (@yurishkuro in #3961)
  • Chore(api): regenerate v3 openapi client from latest idl (@yurishkuro in #3953)
  • Refactor(trace): phase 2(a) - migrate single/multi trace load to react query (@parshipcy in #3835)
  • Refactor(search): introduce tracesummary type for search results (@yurishkuro in #3941)
View originalPermalink
How v2.19.0 went
v2.18.0

Release v2.18.0

Added 8
  • Auto-detect UI base path from browser URL
  • Forward configured headers to Elasticsearch/OpenSearch backend
  • Add configurable header forwarding to gRPC storage backend
  • Implement AI new MCP endpoint for frontend dynamic contextual tooling
  • Add OpenTelemetry metrics middleware for MCP tool invocations
  • Integrate ClickHouse metric storage into Jaeger storage extension
  • Implement AI Gemini agent tracing
  • Add TTL support for ClickHouse v2 storage
Changed 3
  • Drop v1-style reftype from critical path logic in jaegermcp
  • Continue inbound trace context from sep-414 request meta in jaeger_mcp
  • Refactor route registration and request body size handling in jaegerai
Fixed 7
  • Normalize span_kind input to lowercase in get_span_names handler
  • Fix array join alias broken by ClickHouse v26 new analyzer
  • Add missing spanhash value to v2 todbmodel conversion in Cassandra
  • Preserve gocql timeouts when unset in Cassandra config
  • Validate start_time_max after start_time_min
  • Fix sigv4 auth failure due to missing req.getbody on Elasticsearch/OpenSearch writes
  • Add missing scope attributes in ClickHouse query builder
Removed 2
  • Remove min step API from metricstore
  • Remove non-standard health MCP tool
Backend Changes
⛔ Breaking Changes
✨ New Features
  • Feat(query): auto-detect ui base path from browser url (adr-009) (@yurishkuro in #8568)
  • Feat(storage): forward configured headers to elasticsearch/opensearch backend (@ChaitanyaD48 in #8544)
  • Feat(query): add configurable header forwarding to grpc storage backend (@yurishkuro in #8539)
🐞 Bug fixes, Minor Improvements
  • Fix(mcp): normalize span_kind input to lowercase in get_span_names handler (@farhann-saleem in #8466)
  • Fix(clickhouse): fix array join alias broken by clickhouse v26 new analyzer (@Copilot in #8547)
  • Chore(jaegermcp): remove non-standard health mcp tool (@Vi-shub in #8549)
  • [jaegermcp] drop v1-style reftype from critical path logic (@yurishkuro in #8467)
  • [cassandra] add missing spanhash value to v2 todbmodel conversion (@Manik2708 in #8410)
  • Fix(cassandra): preserve gocql timeouts when unset in config (@masihkhatibzadeh99 in #8380)
  • [jaeger_mcp] continue inbound trace context from sep-414 request _meta (@SoumyaRaikwar in #8361)
  • Validate start_time_max after start_time_min (@utafrali in #8309)
  • Fix sigv4 auth failure due to missing req.getbody on es/os writes (@dd-tone in #8308)
🚧 Experimental Features
  • Feat(jaeger): implement ai new mcp endpoint for frontned dynamic contextual tooling (@Nabil-Salah in #8423)
  • [jaegerai] refactor route registration and request body size handling (@yurishkuro in #8468)
  • [fix][clickhouse] add missing scope attributes in clickhouse's query builder (@mahadzaryab1 in #8439)
  • [jaegermcp] add opentelemetry metrics middleware for mcp tool invocations (@CosmicAlgo in #8370)
  • [clickhouse][spm] add e2e test for clickhouse spm (@mahadzaryab1 in #8432)
  • [clickhouse] integrate clickhouse metric storage into jaeger storage extension (@mahadzaryab1 in #8426)
  • Feat(gemini-agent): implement ai gemini agent tracing (@Nabil-Salah in #8398)
  • [clickhouse][spm] implement getcallrates for clickhouse storage (@mahadzaryab1 in #8417)
  • [clickhouse][spm] implement geterrorrates for clickhouse storage (@mahadzaryab1 in #8414)
  • [clickhouse][spm] implement getlatencies for clickhouse storage (@mahadzaryab1 in #8411)
  • [jaegermcp] add get_service_dependencies tool (@lopster568 in #8403)
  • [clickhouse] enable direct integration tests for clickhouse storage (@mahadzaryab1 in #8389)
  • Feature: add ttl support for clickhouse v2 storage (@singhvibhanshu in #7906)
  • [jaegermcp] improve mcp tool descriptions (@lopster568 in #8314)
  • [clickhouse] implement dependency writer for clickhouse storage (@mahadzaryab1 in #8360)
👷 CI Improvements
  • Ci: skip metrics comparison and coverage regression gate on main branch (@Copilot in #8469)
  • Chore(ci): fix stale empty go module cache (@Copilot in #8461)
  • Perf(lint): rewrite check-line-endings in python for ~37x speedup (@yurishkuro in #8399)
  • Ci: integrate check-line-endings.sh into make fmt and make lint (@yurishkuro in #8393)
  • Ci: exclude dev-only modules from fossa workspace scan (@jkowall in #8390)
  • Fix(ci): post coverage gate and metrics comparison check runs against pr head sha (@Copilot in #8387)
⚙️ Refactoring
📖 Documentation
  • Docs(security): document code review and 2fa policies (@jkowall in #8524)
  • Docs(jaegermcp): fix documentation inconsistencies in adr-002 and readme (@Vi-shub in #8509)
  • Document openssf gold badge evidence refresh (@jkowall in #8497)
  • Docs(mcp): align search_traces adr with search_depth schema (@farhann-saleem in #8472)
  • [clickhouse][adr] add adr for clickhouse storage (@mahadzaryab1 in #8434)
📊 UI Changes
⛔ Breaking Changes
✨ New Features
  • Feat(ui): auto-detect url prefix from window.location at page load (@yurishkuro in #3874)
🐞 Bug fixes, Minor Improvements
  • Fix monitor page chart widths on initial load (@gulshank0 in #3555)
  • Fix: use compact duration format consistently across ui (@yurishkuro in #3846)
  • Fix(search): restore time picker options broken by #3781 (@yurishkuro in #3845)
  • Fix(search): use compact duration format in search results (@Copilot in #3844)
  • Fix: add keyboard accessibility to span name and child expander in trace timeline (@swetalin-10 in #3807)
  • Restore trace timeline column resizing in embedded mode (uiembed=v0) (@Copilot in #3823)
  • Fix: include backend error in otlp conversion error message (@yurishkuro in #3827)
  • Fix: stop click propagation in clicktocopy to prevent header collapse (@Copilot in #3818)
  • Fix(trace): restore "back to search" link broken by react router v6 migration (@yurishkuro in #3785)
  • Feat(trace): add service filter to prune spans by service in timeline (@yurishkuro in #3765)
  • Fix: prevent timeline tick labels from overlapping when column is narrow (@aabhinavvvvvvv in #3768)
  • Fix(ui): sort services alphabetically (@bender316 in #3734)
  • 🔒 fix command injection in prepare-release.py (@jkowall in #3717)
  • Perf: optimize tracestatistics grouping (@jkowall in #3718)
  • Add environment checks to prepare-release target (@jkowall in #3512)
  • Fix: prevent infinite loop on tracediff with empty trace ids (@parshipcy in #3714)
  • Adjust search results for smaller screens (@lpmi-13 in #3697)
👷 CI Improvements
⚙️ Refactoring
  • Refactor(spanview): extract relativebar component from tracespanview (@yurishkuro in #3855)
  • Refactor(stats): migrate tracestatisticsheader to functional component (@WasThatRudy in #3842)
  • Part of phase 1 (1f): remove config redux slice; use getconfig via useconfig (@parshipcy in #3781)
  • Part of phase 1 (1e): migrate embed flags off redux (@parshipcy in #3761)
  • Part of phase 1 (1d): move ddg view modifiers from redux to zustand (@parshipcy in #3750)
  • Fix(lint): replace new array(n) with array.from, promote no-new-array to error (@mateenali66 in #3754)
  • Fix(lint): clear unused vars/imports, promote no-unused-vars to error in ts (@mateenali66 in #3753)
  • Fix(lint): fix jest expects to have matcher calls, promote valid-expect to error (@Pasta-coder in #3752)
  • Fix(lint): drop useless array spread, promote no-useless-spread to error (@mateenali66 in #3749)
  • Chore(lint): move oxlint config into vite.config.ts (@yurishkuro in #3748)
  • Fix(lint): pass children as arg, promote no-children-prop to error (@yurishkuro in #3747)
  • Chore: fix all knip unused-export warnings; enable failure mode (@yurishkuro in #3745)
  • Chore: unexport 32 types not imported outside their own file (@yurishkuro in #3744)
  • Chore: fix knip dead-code warnings (@yurishkuro in #3743)
  • Part of phase1 (sub-2-1c): migrate collapse/expand and detail state to zustand (@parshipcy in #3721)
  • Convert measurablenode to functional component (@thc1006 in #3407)
  • Migrate tracespanview to functional component (@whiplashvin in #3470)
  • Part of phase 1 (sub-1c): move trace timeline layout prefs to zustand (@parshipcy in #3719)
  • Part of phase 1 (1b): archive notifier migrated from redux to zustand (@parshipcy in #3715)
  • Part of phase 1: refactor: migrate trace diff state from redux to zustand (@parshipcy in #3702)
  • Refactor: convert spangraph to functional component (@tmchow in #3705)
  • Test(jaeger-ui): migrate tests from jest to vitest (@yurishkuro in #3695)
  • Test: add mockdefault helper for default-export mocks (@yurishkuro in #3694)
  • Test: replace arrow ctor mocks with regular functions (@yurishkuro in #3693)
  • Chore(jaeger-ui): replace require() in test bodies with static imports (@yurishkuro in #3692)
  • Chore(jaeger-ui): rename jsx test files from .js to .jsx (@yurishkuro in #3691)
  • [adr/007] migrate packages/plexus tests from jest to vitest (@yurishkuro in #3690)
  • [adr/007] consolidate jaeger-ui tsconfigs (step e) (@yurishkuro in #3689)
View originalPermalink
How v2.18.0 went
v2.17.0

Release v2.17.0

Added 6
  • Implement timer duration bucket parsing in metrics init
  • Expose metrics storage to UI as storage capabilities
  • Add system prompt instructions for LLM clients in jaegermcp
  • Add Go SDK dashboard generator for monitoring
  • Enable tenancy enforcement in jaegermcp
  • Enforce config-driven limits in jaegermcp handlers
Changed 3
  • Implement safe self-tracing via OTEL collector telemetry factory
  • Optimize ClickHouse spans table for faster searching
  • Optimize ClickHouse get traces query by adding start and end time filter
Fixed 6
  • Accept string-form error filters in trace search for memory storage
  • Guard addjitter against zero or sub-nanosecond durations to prevent panic
  • Clock skew adjuster to also adjust end timestamp
  • Enforce response limits in jaegermcp
  • Fix jaegermcp server integration with Claude code
  • Fix ClickHouse trace ID timestamps table schema and query to deduplicate trace IDs
Backend Changes
🐞 Bug fixes, Minor Improvements
  • Implement timer duration bucket parsing in metrics init (@junaiddshaukat in #7951)
  • Fix(memory): accept string-form error filters in trace search (@YoungHypo in #8217)
  • Feat(monitor): restore grafana to spm docker-compose example (adr-007 step 1) (@abhay1999 in #8215)
  • Safe self-tracing via otel collector telemetry factory (@yurishkuro in #8208)
  • Fix: guard addjitter against zero/sub-nanosecond durations to prevent panic (fixes #8149) (@shivamtiwari3 in #8178)
  • Fix: clock skew adjuster to also adjust endtimestamp (@Audio431 in #8170)
  • Update mcp server readme (@yurishkuro in #8163)
  • Feat(query): expose metricsstorage to ui as storage capabilities (@hharshhsaini in #8154)
🚧 Experimental Features
  • [clickhouse] optimize spans table for faster searching (@mahadzaryab1 in #8258)
  • [jaegermcp] add system prompt instructions for llm clients (adr phase 4) (@lopster568 in #8253)
  • Fix(jaegermcp): enforce response limits (@abhay1999 in #8242)
  • Feat(monitor): go sdk dashboard generator — adr-007 step 2a (@abhay1999 in #8216)
  • [clickhouse][benchmarking] add initial results from benchmarking (@mahadzaryab1 in #8181)
  • [jaegermcp] enable tenancy enforcement (@whiplashvin in #8203)
  • [jaegermcp] enforce config-driven limits in mcp handlers (@rite7sh in #8194)
  • [jaegermcp] fix mcp server integration with claude code (@yurishkuro in #8191)
  • [clickhouse] fix trace id timestamps table schema / query to deduplicate trace_ids (@mahadzaryab1 in #8180)
  • [clickhouse] optimize get traces query by adding start and end time filter (@mahadzaryab1 in #8152)
👷 CI Improvements
  • Fix: create reusable setup-go action to fix go module cache in ci workflows (@Copilot in #8257)
  • Use gotestsum for all test execution (@Copilot in #8256)
  • Fix(ci): correct metrics snapshot comparison noise (@Copilot in #8246)
  • Ci(monitor): add dashboard sync check for go sdk generator (adr-007 step 3) (@abhay1999 in #8240)
  • Fix(ci): add retry logic for pulling registry:2 in prepare-docker-buildx (@Copilot in #8236)
  • [ci] improve e2e workflow documentation and test mode naming (@yurishkuro in #8195)
  • Fix oke demo prometheus upgrade (@danish9039 in #8183)
  • [test] add scope name and version integration test (@Manik2708 in #8138)
  • Fix ci parallel mode detection for org members without team access (@yurishkuro in #8182)
  • Revert metrics workflow changes from pr8106 (@yurishkuro in #8175)
  • Ci: fix pr resolution in ci summary report publish workflow (@yurishkuro in #8159)
  • Do not run dependency-review on push to main (@yurishkuro in #8158)
  • Include metric change details in pr comment (@yurishkuro in #8153)
  • Fix(ci): prevent stale coverage baseline from persisting across main-branch runs (@Copilot in #8157)
  • Fix: use $(suffix) in version-check binary path for debug builds (@Copilot in #8148)
⚙️ Refactoring
  • Move param type conversion util out of tracestore api into v1adapter (@Copilot in #8255)
  • Feat(monitor): complete adr-007 step 2b dashboard upgrade (@YoungHypo in #8241)
📖 Documentation
📊 UI Changes
✨ New Features
  • Allow viewing span details in a side panel instead of inline view (@yurishkuro in #3578)
  • [feature]: add trace logs view to aggregate all span events (@SoumyaRaikwar in #3563)
🐞 Bug fixes, Minor Improvements
  • 🔒 [security fix] replace innerHTML with textContent to mitigate XSS risk (@jkowall in #3651)
  • Add plexus demo route to main ui (dev only, /plexus-demo) (@Copilot in #3656)
  • Fix plexus demo (@yurishkuro in #3654)
  • Clean-up display of incomplete icon, text, and tooltip (@yurishkuro in #3619)
  • Revert "refactor(plexus): migrate digraph to functional component" (@yurishkuro in #3600)
  • Revert "chore: fetch backend config dynamically in dev mode (#3541)" (@yurishkuro in #3599)
  • Fix: dark mode is not working correctly on the quality metrics page (@gulshank0 in #3583)
  • Fix: normalize uppercase trace ids to lowercase in url (@samar-703 in #3485)
  • Fix: tracediff slot b search populates slot a instead (@samar-703 in #3473)
  • Fix detail-row hierarchy: missing vertical bars for parent spans and white background regression (@Copilot in #3572)
  • Fix: system architecture (dag) dark mode visibility (@Parship12 in #3568)
🚧 Experimental Features
👷 CI Improvements
⚙️ Refactoring
  • Feat: add zustand and query foundation for state migration (@Parship12 in #3662)
  • Fix: replace remaining tooltip arrow prop (@YoungHypo in #3663)
  • Remove store npm dependency and suppress lightningcss warning (@yurishkuro in #3659)
  • Remove deprecated worker-loader in favor of webpack 5 / vite built-in worker support (@yurishkuro in #3646)
  • Final part: migrate to react-router-dom v7 & drop compat layer & history (@Parship12 in #3645)
  • Part of phase 4 & 5: migrate the v5 matchpath call signature to v6/v7 matchpath signature (@Parship12 in #3617)
  • Part of phase 4 & 5: migrate link to react-router-dom-v5-compat (@Parship12 in #3618)
  • Part of phase 4: remove redux-first-history and decouple router state from redux (@Parship12 in #3616)
  • Cleanup for phase 4: remove history.replace() and historyupdatemiddleware (@Parship12 in #3615)
  • Final part of phase 3.2 (task 1): refactor(tracepage): convert class component to functional (@Parship12 in #3613)
  • Phase 3 leftovers: remove state.router.location usages (cleanup) (@Parship12 in #3614)
  • Part of phase 3.2 (task 1): factor out keyboard shortcut setup into a separate function in the tracepage (@Parship12 in #3609)
  • Fix(tracepage): fix stale filterspans cache key and remove dead code (@thc1006 in #3592)
  • Part of phase 3.2 (task 2): remove dead searchurl prop (@Parship12 in #3603)
  • Phase 3.2 (task 2): refactor(dependencygraph): convert class component to functional (@Parship12 in #3591)
  • Refactor(plexus): migrate digraph to functional component (@hharshhsaini in #3534)
  • Chore: fetch backend config dynamically in dev mode (#3541) (@hharshhsaini in #3561)
  • Refactor(plexus): migrate node to functional component (#3392) (@hharshhsaini in #3531)
  • Refactor(plexus): migrate svgedges to functional component (#3397) (@hharshhsaini in #3518)
  • Chore: replace getconfigvalue with direct getconfig() property access (@Copilot in #3589)
  • Fix(monitor): use storagecapabilities config as authoritative signal for spm availability (@yurishkuro in #3587)
  • Refactor: control monitor tab visibility via storage capabilities of the backend (@hharshhsaini in #3554)
  • Phase 3.2 (task 3): remove historyupdatemiddleware from redux & move navigate(url) into searchform (@Parship12 in #3582)
  • Phase 3.1: replace state.router.location with uselocation() (@Parship12 in #3574)
  • Refactor(plexus): migrate measurablenodes to functional component (@hharshhsaini in #3533)
  • Phase 1: migrate route definitions to react router v6 syntax (@Parship12 in #3565)
  • Refactor(plexus): migrate svgdefentry to functional component (#3395) (@hharshhsaini in #3528)
View originalPermalink
How v2.17.0 went
v2.16.0

Release v2.16.0

Added 3
  • Add schemagen for internal extensions
  • Add support for elasticsearch health-check timeout at startup
  • Add empty span name sanitizer
Changed 4
  • Replace traces.topic with traces.topics in kafka receiver config
  • Restructure clickhouse findtraceids query to improve performance
  • Refactor cassandra fromdbmodel and todbmodel to accept and return dbmodel.span
  • Migrate http servers from gorilla mux to stdlib http.ServeMux
Fixed 2
  • Support max trace size issue in the query service
  • Include link attributes when searching by tags in memory backend
Removed 1
  • Remove legacy response format of remote sampling endpoint
Backend Changes
⛔ Breaking Changes
  • Enforce Go version consistency across the codebase; require Go 1.25.7 (@Copilot in #8052)
  • Remove legacy response format of remote sampling endpoint (@yurishkuro in #8014)
✨ New Features
🐞 Bug fixes, Minor Improvements
  • [kafka receiver config] replace traces.topic: with traces.topics: (@Copilot in #8144)
  • Disable bulk processor in es authenticator test to prevent goroutine leaks (@Copilot in #8124)
  • Add support for es health-check timeout at startup (@ntdkhiem in #8096)
  • Support max trace size issue in the query service (@yurishkuro in #8098)
  • Add empty span name sanitizer (@Copilot in #8086)
  • [memory] include link attributes when searching by tags (@Manik2708 in #8077)
  • Fix(ci): update upload-artifact to v6 in metrics comparison workflow (@jkowall in #8000)
🚧 Experimental Features
  • [clickhouse][perf] restructure clickhouse findtraceids query to improve performance (@mahadzaryab1 in #8125)
  • [cassandra][v2] refactor fromdbmodel and todbmodel to accept and return dbmodel.span (@Manik2708 in #7844)
👷 CI Improvements
  • Remove otel_scope_version label from metrics comparison (@yurishkuro in #8145)
  • Ci: always update summary report comment if present (@yurishkuro in #8135)
  • Ci: extract ci summary publish script to .github/scripts/ with unit tests (@yurishkuro in #8134)
  • Ci: split ci summary report into compute + publish workflows (@yurishkuro in #8132)
  • Ci: use gh pr list to get pr number (@yurishkuro in #8123)
  • Ci: log trigger event for debugging (@yurishkuro in #8122)
  • Ci: fix summary report to be able to retrieve pr number (@yurishkuro in #8121)
  • Ci: migrate coverage gating from codecov to github actions (@yurishkuro in #8111)
  • Ci: migrate coverage gating from codecov to github actions (@yurishkuro in #8101)
  • Fix: correct bot detection in ci parallel mode (@Copilot in #8097)
  • [chore] fix bot names (@yurishkuro in #8094)
  • Refactor(ci): implement forked dag orchestrator for conditional parallelism (@Copilot in #8093)
  • [test] upgrade integration tests fixtures to otlp traces (@Manik2708 in #8079)
  • [test] upgrade default.json fixture to otlp traces (@Manik2708 in #8076)
  • [test] upgrade span_tags_trace.json from v1 model to ptrace.traces (@Manik2708 in #8044)
  • Reorganize ci into 3-tier sequential pipeline with fail-fast behavior (@Copilot in #8060)
  • [test] refactor integration tests to directly write/read ptrace.traces (@Manik2708 in #7812)
  • Use ifneq instead of ifndef for skip_debug_binaries check (@Copilot in #8039)
  • Fix release process issues: command copy buttons, documentation tagging, and release.md rotation (@jkowall in #7990)
⚙️ Refactoring
📖 Documentation
  • Fix typos and outdated path in elasticsearch readme files (@cluster2600 in #8068)
  • [chore] add automated scanner policy and vulncheck target (@xenonnn4w in #8043)
📊 UI Changes
🐞 Bug fixes, Minor Improvements
  • Rename main package to @jaegertracing/jaeger-ui (@yurishkuro in #3560)
  • Fix: white hover line overflow on critical path segments (@Parship12 in #3550)
  • Fix v3 api client ignoring base path prefix (@Copilot in #3549)
  • Fix spm metrics not fetched on initial load due to null check (@Copilot in #3538)
🚧 Experimental Features
⚙️ Refactoring
  • Refactor(plexus): convert nodeslayer from class to functional component (@thc1006 in #3413)
  • Refactor(plexus): convert svglayer from class to functional component (@thc1006 in #3410)
  • Refactor(plexus): convert svglayersgroup from class to functional component (@thc1006 in #3412)
  • Refactor(plexus): migrate svgedge to functional component (#3396) (@hharshhsaini in #3527)
View originalPermalink
How v2.16.0 went
v2.15.1

Release v2.15.1

Fixed 1
  • Default spankind in api/v3/operations
Removed 1
  • Remove deprecated protofromtraces wrapper in v1adapter
Backend Changes
🐞 Bug fixes, Minor Improvements
⚙️ Refactoring
View originalPermalink
How v2.15.1 went
v2.15.0

Release v2.15.0

Added 11
  • Add Grafana dashboard for metrics exporter
  • Add materialized view for event attribute metadata in ClickHouse
  • Add get_span_names tool for discovering span names in MCP
  • Implement get_critical_path tool in MCP
  • Add get_services tool for service discovery in MCP
  • Add CORS setting and fix null array errors in MCP
Changed 3
  • Use lazy initialization for storage factory
  • Rework ClickHouse attributes to look up type for string attributes
  • Use OpenTelemetry span_name terminology in jaegermcp extension
Fixed 4
  • Return empty array instead of nil from api/v3/services
  • Return empty array instead of nil from queryservice.getservices
  • Always return empty services list when none exist
  • Ensure badger maintenance is stopped before exiting close()
Removed 1
  • Restrict trace/metric storage configs to allow exactly one backend type
Backend Changes
⛔ Breaking Changes
  • Restrict trace/metric storage configs to allow exactly one backend type (@yurishkuro in #7875)
✨ New Features
🐞 Bug fixes, Minor Improvements
  • [fix] return empty array instead of nil from api/v3/services (@dee077 in #7926)
  • [fix] return empty array instead of nil from queryservice.getservices (@sujalshah-bit in #7925)
  • [fix] always return empty services list when none exist (@Sudhanshu-NITR in #7929)
  • [fix] ensure badger maintenance is stopped before existing close() (@Yashika0724 in #7940)
  • Use lazy initialization for storage factory (@Copilot in #7887)
🚧 Experimental Features
  • [clickhouse] add materialized view for event attribute metadata (@mahadzaryab1 in #7923)
  • [clickhouse] rework clickhouse attributes to look up type for string attributes (@mahadzaryab1 in #7815)
  • [mcp] add get_span_names tool for discovering span names (@sajal004004 in #7909)
  • Use opentelemetry span_name terminology in jaegermcp extension (@Copilot in #7916)
  • [mcp] implement get_critical_path tool (phase 3 steps 8-9) (@Copilot in #7857)
  • [clickhouse][chore] update unit tests snapshots to handle multiple queries (@mahadzaryab1 in #7865)
  • [mcp] get_services tool for service discovery (@Copilot in #7864)
  • [mcp] add cors setting and fix null array errors (@yurishkuro in #7863)
  • [mcp] get_trace_topology tool (phase 3 step 7) (@Copilot in #7862)
  • [mcp] phase 2 steps 5-6: get_span_details and get_trace_errors tools (@Copilot in #7859)
  • [mcp] phase 2 step 4: search_traces (@Copilot in #7858)
  • [clickhouse][chore] update test driver to handle multiple queries (@mahadzaryab1 in #7839)
  • [mcp] phase 2 step 3: storage integration (@Copilot in #7849)
  • Mcp server/phase 1.2: sdk integration with streamable http transport (@Copilot in #7846)
  • Mcp server scaffolding (@Copilot in #7842)
  • [clickhouse] move to snapshot testing in unit tests for clickhouse queries (@mahadzaryab1 in #7831)
👷 CI Improvements
⚙️ Refactoring
  • Enable confusing-naming linter rule (@SamyakBorkar in #7949)
  • Replace panic calls with proper error handling (@aaryan359 in #7956)
  • Fix time-naming linter violation in search_traces.go (@jkowall in #7913)
  • [badger][v2] refactor factory signatures to use telemetry settings (@iypetrov in #7902)
  • [cassandra] add omitempty notation for keyvalue and marshaller/unmarshaller for traceid (@Manik2708 in #7867)
  • Converge status reporting to collector framework (@yurishkuro in #7890)
  • [chore] move query service to higher location (@yurishkuro in #7854)
  • [chore] remove v1 queryservice package (@Copilot in #7845)
Documentation
📊 UI Changes
✨ New Features
🐞 Bug fixes, Minor Improvements
🚧 Experimental Features
  • [otel migration] add runtime schema validation to v3 api client (@yurishkuro in #3448)
  • [otel migration] phase 3.1: add jaegerclient v3 and use for services / operations (@yurishkuro in #3329)
  • [otel] add more details to phase-3 (@yurishkuro in #3323)
  • Otel migration - complete phase 2 validation (@yurishkuro in #3319)
  • Clean up of opentracing/opentelemetry nomenclature (@yurishkuro in #3316)
  • Finalize dual use of opentracing/opentelemetry nomenclature (@yurishkuro in #3311)
  • Migrate virtualizedtraceview and dependent components to iotelspan (@Copilot in #3289)
  • Enhance otel domain model with more derived data (@yurishkuro in #3292)
  • Implement phase 2 for spandetail component (@Copilot in #3275)
👷 CI Improvements
⚙️ Refactoring
  • Refactor: update detailspanel to functional component (@Harshdev098 in #3358)
  • Update @types/redux-actions to v2.6.5 (@Parship12 in #3498)
  • Refactor(plexus): convert svgedgeslayer from class to functional component (@thc1006 in #3409)
  • Refactor accordionlinks to functional component (@aaryan359 in #3406)
  • Convert measurablenodeslayer to functional component (@Parship12 in #3429)
  • Refactoring: converted referencebutton from class based to functional component (@gulshank0 in #3350)
  • Remove reducers/services.ts (@yurishkuro in #3455)
  • [chore] remove history from resultitem (@insane-22 in #3361)
  • Replace @sentry/browser with generic internal error capture implementation (@Copilot in #3226)
  • Refactor: convert diffnode to functional component (@hxrshxz in #3343)
  • Refactor: convert hopsselector selector to functional component (@hxrshxz in #3340)
  • Refactor: convert app/index.tsx file's class based to functional component (@gulshank0 in #3342)
  • Convert the htmllayersgroup from class to functional component (@Parship12 in #3351)
  • Convert the htmllayer from class to functional component (@Parship12 in #3345)
  • Remove history from resultitemtitle (@Parship12 in #3312)
  • Convert searchform to functional component (@yurishkuro in #3326)
  • Convert remaining files in searchtrace page to typescript (@yurishkuro in #3325)
  • Convert tracepage to otel model (@yurishkuro in #3309)
  • [chore] migrate few more components to otel model (@yurishkuro in #3308)
  • Migrate tracepageheader to otel model (@yurishkuro in #3307)
  • Migrate trace-dag files to otel types per adr 0002 (@Copilot in #3299)
  • Convert otel model to use strongly typed time/duration fields (@yurishkuro in #3304)
  • Upgrade searchresults components to accept ioteltrace (@Copilot in #3300)
  • Upgrade critical path calculations to otel model (@yurishkuro in #3301)
  • Fix for bug introduced in previous refactoring (@yurishkuro in #3298)
  • Fully upgrade tracetimelineviewer to otel model (@yurishkuro in #3297)
  • Move critical path types to their own domain model file (@yurishkuro in #3296)
  • Rename domain type link to hyperlink and upgrade link-getter to otel (@yurishkuro in #3295)
  • Rename otel traceid/spanid to traceid/spanid to match legacy domain model (@yurishkuro in #3294)
  • Rename pure typescript files to have .ts extension, not .tsx (@yurishkuro in #3290)
View originalPermalink
How v2.15.0 went
v2.14.1

Release v2.14.1

Fixed 2
  • Dark theme fixes
  • Fix span detail panel in dark theme
📊 UI Changes
🐞 Bug fixes, Minor Improvements
View originalPermalink
How v2.14.1 went
v2.14.0

Release v2.14.0

Added 5
  • UI now officially supports dark theme with theme selector enabled by default
  • Add indexspanalias and indexservicealias for explicit aliases
  • Implement findtraces for ClickHouse storage
  • Create materialized view in ClickHouse to store attribute metadata
  • Copy jaeger to otlp translator from otel contrib for Cassandra v2
Changed 9
  • Migrate remote-storage to yaml configuration with shared storageconfig package
  • Memory storage now supports otlp first-class fields in search
  • Fix otel collector v0.141.0 api breaking changes for toserver/toclientconn and kafka receiver/exporter
  • Migrate docker-compose files to jaeger-v2 unified binary
  • Update ClickHouse findtraceids to filter by complex attributes
  • Update ClickHouse findtraceids to filter by other primitive attributes
Fixed 2
  • Update replication strategy configuration in schema template
  • Optimize ClickHouse service and operation retrieval queries
Removed 4
  • Remove legacy v1 components query, collector, and ingester from published releases
  • Remove storage/v1/grpc
  • Remove v1 collector, query, and all-in-one
  • Remove v1 ingester and all kafka related code

TL;DR: Two significant changes in this release:

  1. ☠️ Starting from this release the legacy v1 components query, collector, and ingester are no longer published. All the remaining v1 utilities are now published as v2.x.x versions.
  2. 🌓 The UI now officially supports dark theme and the theme selector is enabled by default.
Backend Changes
⛔ Breaking Changes
  • Remove storage/v1/grpc (@yurishkuro in #7806)
  • Migrate remote-storage to yaml configuration with shared storageconfig package (@Copilot in #7704)
  • Remove v1 collector, query, and all-in-one (@yurishkuro in #7702)
  • Remove v1/ingester and all kafka related code (@yurishkuro in #7701)
  • Eliminate v1 binary references and sunset deprecated components (@Copilot in #7695)
  • Fix otel collector v0.141.0 api breaking changes for toserver/toclientconn and kafka receiver/exporter (@Copilot in #7694)
🐞 Bug fixes, Minor Improvements
🚧 Experimental Features
  • [fix][clickhouse] optimize service and operation retrieval queries (@mahadzaryab1 in #7808)
  • [clickhouse] implement findtraces for clickhouse storage (@mahadzaryab1 in #7795)
  • [clickhouse] create materialized view to store attribute metadata (@mahadzaryab1 in #7798)
  • [clickhouse] update findtraceids to filter by complex attributes (@mahadzaryab1 in #7792)
  • [clickhouse] update findtraceids to filter by other primitive attributes (@mahadzaryab1 in #7789)
  • [cassandra][v2] copy jaeger<->otlp translator from otel contrib (@Manik2708 in #7765)
  • [clickhouse] update findtraceids to filter by string attributes (@mahadzaryab1 in #7788)
  • [clickhouse] update findtraceids to filter by timestamp (@mahadzaryab1 in #7787)
  • [clickhouse] update findtraceids to populate start and end timestamps (@mahadzaryab1 in #7770)
  • [clickhouse] update findtraceids to filter by duration (@mahadzaryab1 in #7767)
  • [clickhouse] implement findtraceids for clickhouse storage for primitive parameters (@mahadzaryab1 in #7648)
  • [clickhouse] add trace_id_timestamps table with materialized view (@mahadzaryab1 in #7723)
  • [fix][clickhouse] remove name column from ordering key for operations table (@mahadzaryab1 in #7714)
👷 CI Improvements
⚙️ Refactoring
📊 UI Changes
✨ New Features
🐞 Bug fixes, Minor Improvements
  • Add visual indicator for synthetic otel attributes (@DCchoudhury15 in #3259)
  • Fix: dark mode styling for trace view with design tokens (@jkowall in #3246)
  • Fix in-trace search (@yurishkuro in #3255)
  • Feat: add incomplete trace detection and adjustable search time offset (@xenonnn4w in #3248)
  • Fix: constant visible white borders in the trace spans (@unknown in #3125)
  • Force light mode by default if config is disabled (@yurishkuro in #3204)
  • Use outlined tags for contrast (@bobrik in #3202)
🚧 Experimental Features
⚙️ Refactoring
  • Simplify transformtracedata (@yurishkuro in #3274)
  • Fix unsafe type coercion and add readonly collection fields (@Copilot in #3273)
  • Persist spanmap and rootspans in trace object; use childspans array for tree structure (@Copilot in #3266)
  • Prevent trace mutation during critical path computation (@Copilot in #3271)
  • Convert tracestatistics to oteltrace (@yurishkuro in #3264)
  • Convert 3 more jsx files to typescript (@yurishkuro in #3241)
  • Fix: qualitymetrics auto-refresh issue (@unknown in #3222)
  • Migrate qualitymetrics/index to use navigate instead of history (@unknown in #3214)
  • Migrate uifindinput from history to navigate (@unknown in #3217)
  • Convert servicegraph class component to functional component (@Copilot in #3212)
  • Convert qualitymetrics/index to functional component (@unknown in #3210)
  • Make update-ui-find backward compatible (@unknown in #3209)
  • Remove usehistory - unused code (@unknown in #3207)
View originalPermalink
How v2.14.0 went
v1.76.0

Release v1.76.0 / v2.13.0

Added 3
  • Add support for custom ui configuration in development mode
  • Add fuzzy search to searchableselect
  • Add dark theme selector
Changed 5
  • Reduce search form field margins for better viewport fit
  • Migrate deepdependencies/header and qualitymetrics/header from nameselector to searchableselect
  • Reorder checkbox before color by dropdown in tracestatisticsheader
  • Sync themes with antd
  • Convert last remaining js files to typescript excluding tests
Fixed 4
  • Register basicauth extension in component factory
  • Fix css class typo in sidepanel details div
  • Fix highlighting of the current tab in the main nav bar
  • Fix ddg minimap border
Removed 1
  • Remove duplicate antd dependencies
Backend Changes
🐞 Bug fixes, Minor Improvements
  • Fix: register basicauth extension in component factory (@xenonnn4w in #7668)
👷 CI Improvements
📊 UI Changes
🐞 Bug fixes, Minor Improvements
  • Add support for custom ui configuration in development mode (@Copilot in #3194)
  • Remove duplicate antd dependencies (@yurishkuro in #3193)
  • Fix css class typo in sidepanel details div (@Copilot in #3190)
  • Reduce search form field margins for better viewport fit (@Copilot in #3189)
  • Migrate deepdependencies/header and qualitymetrics/header from nameselector to searchableselect (@Copilot in #3185)
  • Reorder checkbox before color by dropdown in tracestatisticsheader (@Copilot in #3184)
  • Feat: add fuzzy search to searchableselect (@Copilot in #3182)
  • Fix highlighting of the current tab in the main nav bar (@SimonADW in #3183)
🚧 Experimental Features
👷 CI Improvements
⚙️ Refactoring
View originalPermalink
How v1.76.0 went
View all

Discussion