Releases: jaegertracing/jaeger
Releases Β· jaegertracing/jaeger
Release list
Release 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_skilltool 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 t...
Release v2.19.0
Backend Changes
β¨ New Features
- Feat(apiv3): implement findtracesummaries grpc handler (@yurishkuro in #8634)
π 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
numtracestosearchdepthin 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 (...
Release v2.18.0
Backend Changes
β Breaking Changes
- Metrics changes due to upgrading all OTEL collector packages (@renovate-bot in #8560)
- [metricstore] remove min step api from metricstore (@mahadzaryab1 in #8425)
β¨ 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
spanhashvalue to v2todbmodelconversion (@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
getcallratesfor clickhouse storage (@mahadzaryab1 in #8417) - [clickhouse][spm] implement
geterrorratesfor clickhouse storage (@mahadzaryab1 in #8414) - [clickhouse][spm] implement
getlatenciesfor 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
- [cassandra] remove v1 api dependencies (@Manik2708 in #8428)
- [storage][cassandra] implement v2
tracewriter(@Manik2708 in #7699) - [cassandra] change signature of corespanreader to return an iterator (@Manik2708 in #8296)
- [depstore][v2] update depstore writer interface to accept context (@mahadzaryab1 in #8365)
π 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
- Chore: drop legacy browser support (@ghosthouse7 in #3712)
β¨ 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](https:/...
Release 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
- Adr-007: grafana dashboard modernization and spm example validation (@yurishkuro in #8214)
- Add badger adr (@yurishkuro in #8166)
π 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
- [adr-0006] phase 5: combined modes, analytics, final polish (@yurishkuro in #3577)
- [adr-0006] phase 4: side panel polish (@yurishkuro in #3576)
- [adr-0006] phase 3: side panel container and span selection (@yurishkuro in #3569)
- [adr-0006] phase 2: tree-only mode (hide timeline) (@yurishkuro in #3562)
π· CI Improvements
- Do not fail bundle size workflow on main branch (@yurishkuro in #3653)
- Use .prettierignore instead of explicit opt-in (@yurishkuro in #3647)
- ...
Release 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
- Feat: add schemagen for internal extensions (#6186) (@SoumyaRaikwar in #7947)
π 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
fromdbmodelandtodbmodelto accept and returndbmodel.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.jsonfixture to otlp traces (@Manik2708 in #8076) - [test] upgrade
span_tags_trace.jsonfrom v1 model toptrace.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
- Apply
go fix ./...(@yurishkuro in #8074) - Migrate http servers from gorilla mux to stdlib http.ServeMux (@Copilot in #8013)
- Remove legacy sampling strategy marshaling code (@yurishkuro in #8017)
π 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
- [adr-0006] phase 1: layout mode state and toggle controls (@yurishkuro in #3558)
- Adr 006: span details in side panel (@yurishkuro in #3556)
βοΈ 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)
Release v2.15.1
Backend Changes
π Bug fixes, Minor Improvements
- Default spankind in api/v3/operations (@yurishkuro in #7997)
βοΈ Refactoring
- Remove deprecated protofromtraces wrapper in v1adapter (@SamyakBorkar in #7996)
Release v2.15.0
Backend Changes
β Breaking Changes
- Restrict trace/metric storage configs to allow exactly one backend type (@yurishkuro in #7875)
β¨ New Features
- Issue #7811: added grafana dashboard for metrics exporter (@Anmol202005 in #7903)
π 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
- Fix metrics comparison workflow to reduce pr comment noise (@Copilot in #7957)
- Make spm integration test faster by flushing metrics more frequently (@Don-Assamongkol1 in #7861)
- Enable unhandled-error linter (@iypetrov in #7895)
- Fix(ci): fix codeql workflow to properly analyze go code (@jkowall in #7885)
- Implement pr quota workflow (@yurishkuro in #7882)
- Validate span names in spm integration test (@Don-Assamongkol1 in #7830)
- [chore/ci] add excluded metrics count (@neoandmatrix in #7756)
βοΈ 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
keyvalueand marshaller/unmarshaller fortraceid(@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
- [chore]: add ai usage policy for contributions (@Sapthagiri777 in #7932)
- Docs: add quick start section with docker command (@njg7194 in #7945)
- Add claude.md as symlink to agents.md (@yurishkuro in #7934)
- Add security documentation for openssf silver badge (@jkowall in #7896)
- Adr-003 lazy storage factory initialization (@yurishkuro in #7886)
- Introduce pr limits for new contributors (@yurishkuro in #7880)
- Streamline agents.md by removing redundant content (@yurishkuro in #7879)
- Update contributing guidelines for copyright headers (@yurishkuro in #7877)
- Update documentation defaults from v1 to v2 (@Copilot in #7640)
- Add mcp server adr (@yurishkuro in e91d028)
π UI Changes
β¨ New Features
- New span colors from ibm palette (@yurishkuro in #3306)
- Better tree hierarchy for trace view (@yurishkuro in #3302)
π Bug fixes, Minor Improvements
- Fix text overlapping in tracediff header (@greedy-wudpeckr in #3401)
- Fix linter error (@yurishkuro in #3510)
- Enable react-hooks/exhaustive-deps linter rule (@taanvi2205 in #3471)
- Fix: traceidsearchinput invisible text in light mode (@yosri-brh in #3464)
- [fix] fix the dark mode for tracediff nodes (@gulshank0 in #3474)
- Bug : increase increment/decrement buttons visibility in ddg in dark mode (@gulshank0 in #3450)
- Fix typeerror in operations metrics reducer when no trace data exists (@Copilot in #3460)
- Suppress console errors for 501 metrics api responses (@Copilot in...
Release v2.14.1
π UI Changes
π Bug fixes, Minor Improvements
- Dark theme fixes (@yurishkuro in #3285)
- Fix span detail panel in dark theme (@yurishkuro in #3283)
Release v2.14.0
TL;DR: Two significant changes in this release:
- β οΈ Starting from this release the legacy v1 components
query,collector, andingester
are no longer published. All the remaining v1 utilities are now published as v2.x.x versions. - π 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
- Migrate docker-compose files to jaeger-v2 unified binary (@Copilot in #7747)
- Memory: support otlp first-class fields in search (@SoumyaRaikwar in #7728)
- Added indexspanalias and indexservicealias for explicit aliases (@SomilJain0112 in #7550)
- Fix: update replication strategy configuration in schema template (@danish9039 in #7726)
π§ 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
findtraceidsto filter by other primitive attributes (@mahadzaryab1 in #7789) - [cassandra][v2] copy jaeger<->otlp translator from otel contrib (@Manik2708 in #7765)
- [clickhouse] update
findtraceidsto filter by string attributes (@mahadzaryab1 in #7788) - [clickhouse] update
findtraceidsto filter by timestamp (@mahadzaryab1 in #7787) - [clickhouse] update findtraceids to populate start and end timestamps (@mahadzaryab1 in #7770)
- [clickhouse] update
findtraceidsto filter by duration (@mahadzaryab1 in #7767) - [clickhouse] implement findtraceids for clickhouse storage for primitive parameters (@mahadzaryab1 in #7648)
- [clickhouse] add
trace_id_timestampstable with materialized view (@mahadzaryab1 in #7723) - [fix][clickhouse] remove
namecolumn from ordering key for operations table (@mahadzaryab1 in #7714)
π· CI Improvements
- Fix ci for debug build of all-in-one (@yurishkuro in #7794)
- Use pre-built base image with debugger (@yurishkuro in #7793)
- Ci: exclude http 5xx metrics from comparisons (@neoandmatrix in #7671)
- Remove crossdock (@yurishkuro in #7750)
- Fine-tune when go-tip workflow runs (@yurishkuro in #7749)
- Fix: remove tool installation from go tip workflow (@chinmay3012 in #7716)
- Add "unused" linter (@yurishkuro in #7697)
βοΈ Refactoring
- Move query (@yurishkuro in #7803)
- Use otel optional for optional config fields (@Parship12 in #7766)
- [cassandra][v2] refactor factory signatures to use telemetry settings (@Manik2708 in #7764)
- [storage][cassandra][v2] implement
getservicesandgetoperations(@Manik2708 in #7754) - Remove unused factory and inheritable interfaces from v1 storage (@Copilot in #7755)
- Remove dependency on jaeger-client-go (@yurishkuro in #7745)
- Remove direct dependency on hdrhistogram-go (@jaegertracingbot in #7742)
- Cleanup and simplify jtracer package (@yurishkuro in #7739)
- [cassandra] refactor
tagfilterto acceptdbmodel.span(@Manik2708 in #7707) - [clickhouse] add indexes for spans table in clickhouse storage (@mahadzaryab1 in #7715)
- Remove deprecated namespace concept from cassandra storage options (@Copilot in #7719)
- Remove viperize from storage backend tests (@Copilot in #7712)
- Remove unused shared/grpc_client (@yurishkuro in #7713)
- Delete v1/memory storage implementaiton (@yurishkuro in #7711)
- Delete more dead code (@yurishkuro in #7710)
- Remove v1 storage factories (@yurishkuro in #7708)
- Upgrade grpc integration test to use v2 memory storage (@yurishkuro in #7709)
- Remove unused factory pattern code from sampling strategy packages (@Copilot in #7705)
- Remove some dead code (@yurishkuro in #7706)
π UI Changes
β¨ New Features
- Enable theme selector by default (@yurishkuro in #3257)
π 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](https://g...
Release v1.76.0 / v2.13.0
Backend Changes
π Bug fixes, Minor Improvements
- Fix: register basicauth extension in component factory (@xenonnn4w in #7668)
π· CI Improvements
- Make error message better (@yurishkuro in #7675)
- Clean go cache after installing gotip as suggested. (@Kavish-12345 in #7666)
- Fix: build test tools with stable go, not gotip (@Kavish-12345 in #7665)
π 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
- Sync themes with antd (@yurishkuro in #3196)
- Add dark theme selector (@yurishkuro in #3192)
π· CI Improvements
- Add copyright year linter to npm lint command (@Copilot in #3197)
- Rename theme variables to match industry practice (@yurishkuro in #3174)
- Tweak codecov config (@yurishkuro in #3169)
βοΈ Refactoring
- Apply theme vars to common/emphasizednode (@yurishkuro in #3191)
- Fix ddg minimap border (@yurishkuro in #3188)
- Use token vars in common/utils.css (@yurishkuro in #3187)
- Apply theme vars to some shared components (@yurishkuro in #3181)
- Apply theme vars to search page (@yurishkuro in #3180)
- Use theme vars in errormessage & loadingindicator (@yurishkuro in #3177)
- Use theme vars in main page and topnav (@yurishkuro in #3176)
- Convert last remaining js files to typescript (excluding tests) (@yurishkuro in #3173)
- Convert some easy files to typescript (@yurishkuro in #3167)