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 #3461)
- Fix dark mode in tracegraph (@rakshityadav1868 in #3334)
- [bugfix] update flame graph in dark theme #3321 (@gulshank0 in #3324)
- Add spacing to make the trace metadata more readable (@Parship12 in #3331)
- Implement dark mode for tracediff (compare page) (@Parship12 in #3314)
- Theme cleanup (@yurishkuro in #3320)
- Fix trace span table in dark mode (@yurishkuro in #3310)
- [tree] fix box size when number is large (@yurishkuro in #3303)
- Add jaeger logo to navbar (@yurishkuro in #3291)
🚧 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
- Add pr quota workflow (@yurishkuro in #3441)
- Calculate main and plexus test coverage separately (@yurishkuro in #3349)
⚙️ 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)