What changed in Jaeger from 1 to 2

9 releases numbered after v1.76.0 up to and including v2.20.0, stable releases only. v1.76.0 and v2.20.0 are the newest stable releases of 1 and 2 we track; this page follows them as new ones ship.

128 changes across 9 releases

Added 48

v2.20.0

  • 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

v2.19.0

  • 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
  • Add reset button to clear the search form
  • Add TLS configuration for ClickHouse
  • Add missing scope and link fields to Elasticsearch index templates

v2.18.0

  • 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

v2.17.0

  • 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

v2.16.0

  • Add schemagen for internal extensions
  • Add support for elasticsearch health-check timeout at startup
  • Add empty span name sanitizer

v2.15.0

  • 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
  • Add get_trace_topology tool in MCP
  • Add get_span_details and get_trace_errors tools in MCP
  • Add search_traces tool in MCP
  • Add storage integration in MCP
  • Add MCP server scaffolding with SDK integration and streamable HTTP transport

v2.14.0

  • 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 38

v2.20.0

  • 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
  • Migrate span writes onto an owned bounded bulk indexer
  • Migrate service/operation reads onto owned searcher and query ast
  • Route admin plane through the shared auth stack

v2.19.0

  • 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

v2.18.0

  • 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

v2.17.0

  • 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

v2.16.0

  • 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

v2.15.0

  • Use lazy initialization for storage factory
  • Rework ClickHouse attributes to look up type for string attributes
  • Use OpenTelemetry span_name terminology in jaegermcp extension

v2.14.0

  • 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
  • Update ClickHouse findtraceids to filter by string attributes
  • Update ClickHouse findtraceids to filter by timestamp
  • Update ClickHouse findtraceids to populate start and end timestamps
Fixed 32

v2.20.0

  • 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

v2.19.0

  • 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

v2.18.0

  • 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

v2.17.0

  • 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

v2.16.0

  • Support max trace size issue in the query service
  • Include link attributes when searching by tags in memory backend

v2.15.1

  • Default spankind in api/v3/operations

v2.15.0

  • 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()

v2.14.1

  • Dark theme fixes
  • Fix span detail panel in dark theme

v2.14.0

  • Update replication strategy configuration in schema template
  • Optimize ClickHouse service and operation retrieval queries
Removed 10

v2.20.0

  • Remove support for Elasticsearch v6

v2.18.0

  • Remove min step API from metricstore
  • Remove non-standard health MCP tool

v2.16.0

  • Remove legacy response format of remote sampling endpoint

v2.15.1

  • Remove deprecated protofromtraces wrapper in v1adapter

v2.15.0

  • Restrict trace/metric storage configs to allow exactly one backend type

v2.14.0

  • 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

Original release notes, newest first

The list above is our reading of these notes; the originals from CNCF are here, one fold per release.

v2.20.0Release v2.20.0
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

v2.19.0Release v2.19.0
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

v2.18.0Release v2.18.0
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

v2.17.0Release v2.17.0
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

v2.16.0Release v2.16.0
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

v2.15.1Release v2.15.1
Backend Changes
🐞 Bug fixes, Minor Improvements
⚙️ Refactoring

View originalPermalink

v2.15.0Release v2.15.0
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

v2.14.1Release v2.14.1
📊 UI Changes
🐞 Bug fixes, Minor Improvements

View originalPermalink

v2.14.0Release v2.14.0

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