Jaeger v2.17.0

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 original

Upgraded? How did it go?

Discussion