jaeger v2.19.0 版本更新介绍
发布日期: 2026-06-03
版本号: v2.19.0
本次更新主要围绕Jaeger项目引入并完善轻量级的trace-summaries搜索API展开。后端新增了
/api/v3/trace-summaries端点及相关gRPC处理程序,支持查询属性过滤、camelCase参数和可配置的搜索深度,同时修复了存储层的多个问题并为ClickHouse添加了TLS配置。前端UI进行了破坏性变更,将搜索功能迁移至该新API,并增加了表格视图、重置按钮、可调整侧面板等新特性。此外,后端和前端均进行了大量重构、依赖升级和CI/CD改进,文档也得到了补充,整体提升了搜索功能的性能和用户体验。
更新内容 (中文)
后端变更
✨ 新功能
- 功能(apiv3): 实现findtracesummaries grpc处理器 (@yurishkuro 于 #8634)
🐞 错误修复,小幅改进
- 修复(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
- 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 (@parshipcy in #3835)
- Refactor(search): introduce tracesummary type for search results (@yurishkuro in #3941)
下载链接
- jaeger-2.19.0-darwin-amd64.sha256sum.txt
- jaeger-2.19.0-darwin-amd64.tar.gz
- jaeger-2.19.0-darwin-amd64.tar.gz.asc
- jaeger-2.19.0-darwin-arm64.sha256sum.txt
- jaeger-2.19.0-darwin-arm64.tar.gz
- jaeger-2.19.0-darwin-arm64.tar.gz.asc
- jaeger-2.19.0-linux-amd64.sha256sum.txt
- jaeger-2.19.0-linux-amd64.tar.gz
- jaeger-2.19.0-linux-amd64.tar.gz.asc
- jaeger-2.19.0-linux-arm64.sha256sum.txt
- jaeger-2.19.0-linux-arm64.tar.gz
- jaeger-2.19.0-linux-arm64.tar.gz.asc
- jaeger-2.19.0-linux-ppc64le.sha256sum.txt
- jaeger-2.19.0-linux-ppc64le.tar.gz
- jaeger-2.19.0-linux-ppc64le.tar.gz.asc
- jaeger-2.19.0-linux-s390x.sha256sum.txt
- jaeger-2.19.0-linux-s390x.tar.gz
- jaeger-2.19.0-linux-s390x.tar.gz.asc
- jaeger-2.19.0-windows-amd64.sha256sum.txt
- jaeger-2.19.0-windows-amd64.tar.gz
- jaeger-2.19.0-windows-amd64.tar.gz.asc
- jaeger-2.19.0-windows-amd64.zip
- jaeger-2.19.0-windows-amd64.zip.asc
- jaeger-2.19.0.sha256sum.txt
- jaeger-SBOM.spdx.json
- jaeger-tools-2.19.0-darwin-amd64.sha256sum.txt
- jaeger-tools-2.19.0-darwin-amd64.tar.gz
- jaeger-tools-2.19.0-darwin-amd64.tar.gz.asc
- jaeger-tools-2.19.0-darwin-arm64.sha256sum.txt
- jaeger-tools-2.19.0-darwin-arm64.tar.gz
- jaeger-tools-2.19.0-darwin-arm64.tar.gz.asc
- jaeger-tools-2.19.0-linux-amd64.sha256sum.txt
- jaeger-tools-2.19.0-linux-amd64.tar.gz
- jaeger-tools-2.19.0-linux-amd64.tar.gz.asc
- jaeger-tools-2.19.0-linux-arm64.sha256sum.txt
- jaeger-tools-2.19.0-linux-arm64.tar.gz
- jaeger-tools-2.19.0-linux-arm64.tar.gz.asc
- jaeger-tools-2.19.0-linux-ppc64le.sha256sum.txt
- jaeger-tools-2.19.0-linux-ppc64le.tar.gz
- jaeger-tools-2.19.0-linux-ppc64le.tar.gz.asc
- jaeger-tools-2.19.0-linux-s390x.sha256sum.txt
- jaeger-tools-2.19.0-linux-s390x.tar.gz
- jaeger-tools-2.19.0-linux-s390x.tar.gz.asc
- jaeger-tools-2.19.0-windows-amd64.sha256sum.txt
- jaeger-tools-2.19.0-windows-amd64.tar.gz
- jaeger-tools-2.19.0-windows-amd64.tar.gz.asc
- jaeger-tools-2.19.0-windows-amd64.zip
- jaeger-tools-2.19.0-windows-amd64.zip.asc