jaeger v2.14.0 版本更新介绍
发布日期: 2026-01-02
版本号: v2.14.0
本次更新有两个重要变更:从新版本开始,旧版v1组件
query、collector和ingester将不再发布,所有剩余的v1工具均以v2.x.x版本发布;UI正式支持深色主题,且主题选择器默认启用。后端方面进行了多项破坏性更改,包括移除v1组件、迁移至YAML配置等,同时包含bug修复、对ClickHouse等存储的实验性功能支持以及CI和代码重构。UI方面主要实现了深色主题支持,默认启用主题选择器,修复了相关样式和交互问题,并引入了OpenTelemetry数据模型的实验性功能。
更新内容 (中文)
简要说明:本次发布包含两项重要变更:
- ☠️ 自本版本起,旧版v1组件
query、collector和ingester不再发布。所有剩余v1工具现以v2.x.x版本发布。 - 🌓 界面现已正式支持深色主题,主题选择器默认启用。
后端变更
⛔ 破坏性变更
- 移除 storage/v1/grpc (@yurishkuro 于 #7806)
- 将远程存储迁移至使用共享 storageconfig 包的 yaml 配置 (@Copilot 于 #7704)
- 移除 v1 collector、query 和 all-in-one (@yurishkuro 于 #7702)
- 移除 v1/ingester 和所有 kafka 相关代码 (@yurishkuro 于 #7701)
- 清除 v1 二进制文件引用并弃用已废弃组件 (@Copilot 于 #7695)
- 修复 otel collector v0.141.0 api 对 toserver/toclientconn 和 kafka receiver/exporter 的破坏性变更 (@Copilot 于 #7694)
🐞 错误修复与小改进
- 将 docker-compose 文件迁移至 jaeger-v2 统一二进制文件 (@Copilot 于 #7747)
- 内存存储:支持在搜索中使用 otlp 一等字段 (@SoumyaRaikwar 于 #7728)
- 添加 indexspanalias 和 indexservicealias 用于显式别名 (@SomilJain0112 于 #7550)
- 修复:更新 schema 模板中的复制策略配置 (@danish9039 于 #7726)
🚧 实验性功能
- [修复][clickhouse] 优化服务与操作检索查询 (@mahadzaryab1 于 #7808)
- [clickhouse] 为 clickhouse 存储实现 findtraces (@mahadzaryab1 于 #7795)
- [clickhouse] 创建物化视图以存储属性元数据 (@mahadzaryab1 于 #7798)
- [clickhouse] 更新 findtraceids 以根据复杂属性过滤 (@mahadzaryab1 于 #7792)
- [clickhouse] 更新
findtraceids以根据其他原始属性过滤 (@mahadzaryab1 于 #7789) - [cassandra][v2] 从 otel contrib 复制 jaeger<->otlp 转换器 (@Manik2708 于 #7765)
- [clickhouse] 更新
findtraceids以根据字符串属性过滤 (@mahadzaryab1 于 #7788) - [clickhouse] 更新
findtraceids以根据时间戳过滤 (@mahadzaryab1 于 #7787) - [clickhouse] 更新 findtraceids 以填充开始和结束时间戳 (@mahadzaryab1 于 #7770)
- [clickhouse] 更新
findtraceids以根据持续时间过滤 (@mahadzaryab1 于 #7767) - [clickhouse] 为 clickhouse 存储实现原始参数的 findtraceids (@mahadzaryab1 于 #7648)
- [clickhouse] 添加带物化视图的
trace_id_timestamps表 (@mahadzaryab1 于 #7723) - [修复][clickhouse] 从操作表的排序键中移除
name列 (@mahadzaryab1 于 #7714)
👷 CI 改进
- 修复 all-in-one 调试构建的 ci (@yurishkuro 于 #7794)
- 使用预构建的带调试器基础镜像 (@yurishkuro 于 #7793)
- CI:在比较中排除 http 5xx 指标 (@neoandmatrix 于 #7671)
- 移除 crossdock (@yurishkuro 于 #7750)
- 微调 go-tip 工作流运行时机 (@yurishkuro 于 #7749)
- 修复:从 go tip 工作流中移除工具安装 (@chinmay3012 于 #7716)
- 添加 “unused” 代码检查器 (@yurishkuro 于 #7697)
⚙️ 重构
- 移动 query (@yurishkuro 于 #7803)
- 使用 otel optional 处理可选配置字段 (@Parship12 于 #7766)
- [cassandra][v2] 重构工厂签名以使用遥测设置 (@Manik2708 于 #7764)
- [storage][cassandra][v2] 实现
getservices和getoperations(@Manik2708 于 #7754) - 从 v1 存储中移除未使用的工厂和可继承接口 (@Copilot 于 #7755)
- 移除对 jaeger-client-go 的依赖 (@yurishkuro 于 #7745)
- 移除对 hdrhistogram-go 的直接依赖 (@jaegertracingbot 于 #7742)
- 清理并简化 jtracer 包 (@yurishkuro 于 #7739)
- [cassandra] 重构
tagfilter以接受dbmodel.span(@Manik2708 于 #7707) - [clickhouse] 为 clickhouse 存储中的 spans 表添加索引 (@mahadzaryab1 于 #7715)
- 从 cassandra 存储选项中移除已废弃的命名空间概念 (@Copilot 于 #7719)
- 从存储后端测试中移除 viperize (@Copilot 于 #7712)
- 移除未使用的 shared/grpc_client (@yurishkuro 于 #7713)
- 删除 v1/memory 存储实现 (@yurishkuro 于 #7711)
- 删除更多废弃代码 (@yurishkuro 于 #7710)
- 移除 v1 存储工厂 (@yurishkuro 于 #7708)
- 升级 grpc 集成测试以使用 v2 memory 存储 (@yurishkuro 于 #7709)
- 从采样策略包中移除未使用的工厂模式代码 (@Copilot 于 #7705)
- 移除部分废弃代码 (@yurishkuro 于 #7706)
📊 界面变更
✨ 新功能
- 默认启用主题选择器 (@yurishkuro 于 #3257)
🐞 错误修复与小改进
- 为合成 otel 属性添加视觉指示器 (@DCchoudhury15 于 #3259)
- 修复:使用设计令牌设置 trace 视图的深色模式样式 (@jkowall 于 #3246)
- 修复 trace 内搜索 (@yurishkuro 于 #3255)
- 功能:添加不完整 trace 检测和可调整的搜索时间偏移 (@xenonnn4w 于 #3248)
- 修复:trace spans 中恒定可见的白色边框 (@unknown 于 #3125)
- 如果配置被禁用,则默认强制使用浅色模式 (@yurishkuro 于 #3204)
- 使用轮廓标签以增强对比度 (@bobrik 于 #3202)
🚧 实验性功能
- 修复 parentspanid 计算以验证 traceid 并处理 follows_from 引用 (@Copilot 于 #3268)
- 向领域模型添加懒加载的 otel 门面 (@yurishkuro 于 #3263)
- 添加 useopentelemetryterms 功能标志 (@yurishkuro 于 #3262)
- 引入 otel 数据模型 (@yurishkuro 于 #3261)
- 应用样式使 minimap 在深色主题下工作 (@yurishkuro 于 #3256)
- 将主题变量移回根级 (@yurishkuro 于 #3247)
- 根据 antd 变量定义主题变量 (@yurishkuro 于 #3245)
- 通过使用 css 变量修复深色模式 (@jkowall 于 #3242)
⚙️ 重构
- 简化 transformtracedata (@yurishkuro 于 #3274)
- 修复不安全的类型强制转换并添加只读集合字段 (@Copilot 于 #3273)
- 在 trace 对象中持久化 spanmap 和 rootspans;使用 childspans 数组构建树结构 (@Copilot 于 #3266)
- 在关键路径计算期间防止 trace 突变 (@Copilot 于 #3271)
- 将 tracestatistics 转换为 oteltrace (@yurishkuro 于 #3264)
- 将另外 3 个 jsx 文件转换为 typescript (@yurishkuro 于 #3241)
- 修复:qualitymetrics 自动刷新问题 (@unknown 于 #3222)
- 将 qualitymetrics/index 迁移为使用 navigate 而非 history (@unknown 于 #3214)
- 将 uifindinput 从 history 迁移至 navigate (@unknown 于 #3217)
- 将 servicegraph 类组件转换为函数组件 (@Copilot 于 #3212)
- 将 qualitymetrics/index 转换为函数组件 (@unknown 于 #3210)
- 使 update-ui-find 向后兼容 (@unknown 于 #3209)
- 移除 usehistory - 未使用代码 (@unknown 于 #3207)
更新内容 (原始)
TL;DR: Two significant changes in this release:
- ☠️ Starting from this release the legacy v1 components
query,collector, andingesterare 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 in #3202)
🚧 Experimental Features
- Fix parentspanid calculation to validate traceid and handle follows_from references (@Copilot in #3268)
- Add lazy otel facade to domain model (@yurishkuro in #3263)
- Add useopentelemetryterms feature flag (@yurishkuro in #3262)
- Introduce otel data model (@yurishkuro in #3261)
- Apply styles to make minimap work in dark theme (@yurishkuro in #3256)
- Move theme vars back to root (@yurishkuro in #3247)
- Define theme vars in terms of antd vars (@yurishkuro in #3245)
- Fix dark mode by using css variables (@jkowall in #3242)
⚙️ Refactoring
- Simplify transformtracedata (@yurishkuro in #3274)
- Fix unsafe type coercion and add readonly collection fields (@Copilot in #3273)
- Persist spanmap and rootspans in trace object; use childspans array for tree structure (@Copilot in #3266)
- Prevent trace mutation during critical path computation (@Copilot in #3271)
- Convert tracestatistics to oteltrace (@yurishkuro in #3264)
- Convert 3 more jsx files to typescript (@yurishkuro in #3241)
- Fix: qualitymetrics auto-refresh issue (@unknown in #3222)
- Migrate qualitymetrics/index to use navigate instead of history (@unknown in #3214)
- Migrate uifindinput from history to navigate (@unknown in #3217)
- Convert servicegraph class component to functional component (@Copilot in #3212)
- Convert qualitymetrics/index to functional component (@unknown in #3210)
- Make update-ui-find backward compatible (@unknown in #3209)
- Remove usehistory - unused code (@unknown in #3207)
下载链接
- jaeger-2.14.0-darwin-amd64.sha256sum.txt
- jaeger-2.14.0-darwin-amd64.tar.gz
- jaeger-2.14.0-darwin-amd64.tar.gz.asc
- jaeger-2.14.0-darwin-arm64.sha256sum.txt
- jaeger-2.14.0-darwin-arm64.tar.gz
- jaeger-2.14.0-darwin-arm64.tar.gz.asc
- jaeger-2.14.0-linux-amd64.sha256sum.txt
- jaeger-2.14.0-linux-amd64.tar.gz
- jaeger-2.14.0-linux-amd64.tar.gz.asc
- jaeger-2.14.0-linux-arm64.sha256sum.txt
- jaeger-2.14.0-linux-arm64.tar.gz
- jaeger-2.14.0-linux-arm64.tar.gz.asc
- jaeger-2.14.0-linux-ppc64le.sha256sum.txt
- jaeger-2.14.0-linux-ppc64le.tar.gz
- jaeger-2.14.0-linux-ppc64le.tar.gz.asc
- jaeger-2.14.0-linux-s390x.sha256sum.txt
- jaeger-2.14.0-linux-s390x.tar.gz
- jaeger-2.14.0-linux-s390x.tar.gz.asc
- jaeger-2.14.0-windows-amd64.sha256sum.txt
- jaeger-2.14.0-windows-amd64.tar.gz
- jaeger-2.14.0-windows-amd64.tar.gz.asc
- jaeger-2.14.0-windows-amd64.zip
- jaeger-2.14.0-windows-amd64.zip.asc
- jaeger-2.14.0.sha256sum.txt
- jaeger-SBOM.spdx.json
- jaeger-tools-2.14.0-darwin-amd64.sha256sum.txt
- jaeger-tools-2.14.0-darwin-amd64.tar.gz
- jaeger-tools-2.14.0-darwin-amd64.tar.gz.asc
- jaeger-tools-2.14.0-darwin-arm64.sha256sum.txt
- jaeger-tools-2.14.0-darwin-arm64.tar.gz
- jaeger-tools-2.14.0-darwin-arm64.tar.gz.asc
- jaeger-tools-2.14.0-linux-amd64.sha256sum.txt
- jaeger-tools-2.14.0-linux-amd64.tar.gz
- jaeger-tools-2.14.0-linux-amd64.tar.gz.asc
- jaeger-tools-2.14.0-linux-arm64.sha256sum.txt
- jaeger-tools-2.14.0-linux-arm64.tar.gz
- jaeger-tools-2.14.0-linux-arm64.tar.gz.asc
- jaeger-tools-2.14.0-linux-ppc64le.sha256sum.txt
- jaeger-tools-2.14.0-linux-ppc64le.tar.gz
- jaeger-tools-2.14.0-linux-ppc64le.tar.gz.asc
- jaeger-tools-2.14.0-linux-s390x.sha256sum.txt
- jaeger-tools-2.14.0-linux-s390x.tar.gz
- jaeger-tools-2.14.0-linux-s390x.tar.gz.asc
- jaeger-tools-2.14.0-windows-amd64.sha256sum.txt
- jaeger-tools-2.14.0-windows-amd64.tar.gz
- jaeger-tools-2.14.0-windows-amd64.tar.gz.asc
- jaeger-tools-2.14.0-windows-amd64.zip
- jaeger-tools-2.14.0-windows-amd64.zip.asc