发布日期: 2026-06-03
版本号: v2.19.0

本次更新主要围绕Jaeger项目引入并完善轻量级的trace-summaries搜索API展开。后端新增了/api/v3/trace-summaries端点及相关gRPC处理程序,支持查询属性过滤、camelCase参数和可配置的搜索深度,同时修复了存储层的多个问题并为ClickHouse添加了TLS配置。前端UI进行了破坏性变更,将搜索功能迁移至该新API,并增加了表格视图、重置按钮、可调整侧面板等新特性。此外,后端和前端均进行了大量重构、依赖升级和CI/CD改进,文档也得到了补充,整体提升了搜索功能的性能和用户体验。

更新内容 (中文)

后端变更

✨ 新功能

🐞 错误修复,小幅改进

  • 修复(apiv3): 在get /api/v3/traces接口中支持query.attributes过滤 (@yurishkuro#8687)
  • 功能(clickhouse): 添加TLS配置 (@Pulkit7070#8650)
  • [clickhouse] 为clickhouse添加代码检查工具 (@mahadzaryab1#8641)
  • [es] 为索引模板添加缺失的scope和link字段 (@Manik2708#8643)
  • 修复: tools API在acp和jaeger网关之间不匹配 (@Nabil-Salah#8608)
  • 修复(apiv3): 修复traceid大小写,添加快照测试,并在trace-summaries端点中设置默认searchdepth (@yurishkuro#8633)
  • 功能: 添加get /api/v3/trace-summaries端点以获取轻量级搜索结果 (@yurishkuro#8604)
  • 修复(apiv3): 接受驼峰式HTTP查询参数,保留蛇形命名作为弃用别名 (@yurishkuro#8625)
  • 修复(apiv3): 将query.num_traces重命名为query.search_depth,保留弃用别名 (@yurishkuro#8618)
  • CI(metrics): 将PR指标差异设为信息性 (@yurishkuro#8605)
  • 修复(storage/v2): 在findtraceids rpc中使用findtraceidsrequest (@yurishkuro#8603)
  • 修复(storage): 移除getstoragefactory中具有误导性的错误包装器 (@yurishkuro#8593)
  • 功能(grpc-storage): 为grpc存储客户端添加max_recv_msg_size_mib配置 (@yurishkuro#8576)

🚧 实验性功能

  • 重构(apiv3): 在http网关中用proto类型替换手写的json框架 (@yurishkuro#8646)
  • 功能(grpc): 在grpc存储适配器中实现summaryreader (@yurishkuro#8642)
  • 功能(querysvc): 原生计算trace摘要或回退到完整trace聚合 (@yurishkuro#8638)
  • 功能(jaeger): 实现ag-ui端点 (@Nabil-Salah#8505)

👷 CI改进

  • CI: 减少GitHub actions令牌权限 (@jkowall#8640)
  • 修复(ci): 在setup-node.js操作中始终使用子模块作为npm缓存键 (@yurishkuro#8654)
  • 功能(ci): 在快照构建中使用最新的jaeger-ui/main提交 (@yurishkuro#8653)
  • 修复(ci): 稳定codeql检查结果 (@jkowall#8615)
  • 修复(lint): 强制实施按文件的许可证头 (@jkowall#8537)

⚙️ 重构

  • [chore] 启用revive deep-exit检查规则 (@abhay1999#8274)
  • [es] 在es v2 dbmodel中将numtraces重命名为searchdepth (@aezyus#8611)

📖 文档

  • 文档(security): 记录模糊测试分数卡例外情况 (@jkowall#8637)
  • 文档(adr): 添加adr-010 trace摘要API用于轻量级搜索结果 (@yurishkuro#8602)
  • 文档(security): 记录openssf硬证据 (@jkowall#8585)
  • 文档(security): 添加当前安全审查证据 (@jkowall#8584)

📊 UI变更

⛔ 破坏性变更

  • 功能: 将搜索迁移到/api/v3/trace-summaries(adr-010 阶段2b) (@yurishkuro#3943)

✨ 新功能

  • 功能(search): 在搜索结果中添加表格视图作为列表视图的替代 (@yurishkuro#3980)

🐞 错误修复,小幅改进

  • 功能(search): 添加重置按钮以清除搜索表单 (@yurishkuro#4009)
  • 修复(search): 支持旧版仅lookback搜索URL (@yurishkuro#4008)
  • 修复(search): 抑制存储不支持的trace摘要列 (@ghosthouse7#4007)
  • 修复(search): 在多次搜索间保持trace比较选择 (@parshipcy#3968)
  • 重构(deps-graph): 将开发数据集源合并到usedependenciesquery中 (@yurishkuro#3993)
  • 修复(deps-graph): 整理工具栏布局并清除过期视觉问题 (@yurishkuro#3992)
  • 功能(searchtracepage): 可调整大小和可折叠的搜索侧面板 (@swetalin-10#3984)
  • 文档(tracking): 添加控制台分析示例并改进自定义分析文档 (@yurishkuro#3988)
  • 功能(search): 使默认lookback可配置;从URL时间戳重建lookback (@yurishkuro#3973)
  • 重构(ui): 在搜索和监控之间共享时间范围选项 (@yurishkuro#3978)
  • 功能(search): 添加v3 trace-summaries api客户端和排序模型(adr-010 阶段2b,第1部分) (@yurishkuro#3947)
  • 重构(dev): 提取路由和时间范围工具,延迟加载次要页面 (@yurishkuro#3946)
  • 调整: 将tsconfig目标从es2016升级到es2020 (@yurishkuro#3945)
  • 修复(ui): 延迟空根错误检查以避免react 18的闪现 (@yurishkuro#3942)
  • 修复(ui): 更正accordionlinks类名和css标点符号键中的拼写错误 (@Pulkit7070#3905)

🚧 实验性功能

  • 功能(config): 添加ai.enabled标志(默认false)用于AI辅助UI (@yurishkuro#4003)

⚙️ 重构

  • 重构(ddg): 将节点内容转换为hooks (@sksingh2005#3948)
  • 功能(state): 将依赖页面迁移到react query(adr-004 2d) (@parshipcy#3991)
  • 重构(trace): 将timelineviewinglayer转换为hooks (@sksingh2005#3868)
  • 重构(search): 完成阶段2c发现查询键 (@parshipcy#3966)
  • 功能(search): 使用/api/v3/trace-summaries作为搜索结果 (@yurishkuro#3964)
  • 修复(search): 用带键的缓存和淘汰策略替换单例缓存用于trace搜索 (@yurishkuro#3961)
  • 调整(api): 从最新idl重新生成v3 openapi客户端 (@yurishkuro#3953)
  • 重构(trace): 阶段2(a) - 将单/多trace加载迁移到react query (@parshipcy#3835)
  • 重构(search): 为搜索结果引入tracesummary类型 (@yurishkuro#3941)

更新内容 (原始)

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)

下载链接