Jaeger 2.22 介绍与选型指南

Jaeger 2.22 介绍与选型指南:CNCF 毕业分布式链路追踪平台 v2 的 OTel Collector 架构、运行角色与存储后端、多协议采集与采样体系、二进制快速上手、适用限制,以及与 Zipkin、Tempo、SkyWalking 的量化对比

JaegerAPM监控2026/10/19

Jaeger 2.22 介绍与选型指南

一、信息基准

1.1 查询口径

本篇信息查询日期为 2026-10-19,全部资料取自 Jaeger 官方渠道(官网 jaegertracing.io、官方文档 v2.22 版、GitHub 官方仓库与发布流、CNCF 官方公告),未做本地安装与运行实测。版本基准为官方最新发布 2.22.0。

1.2 版本依据

GitHub 官方发布流实查(2026-10-19):

版本发布时间
2.22.02026-10-06
2.21.02026-09-15
2.20.02026-07-20
2.19.02026-06-03
2.18.02026-05-13
2.17.02026-04-01

次版本节奏约为每 6 至 8 周一个,期间另有补丁版本。两条关键生命周期信息:官方下载页明示「Jaeger v1 已于 2025 年 12 月 31 日到达生命周期终点,不再接收更新」;Jaeger v2 于 2024 年 11 月发布,是全新的主版本系列。官网博客另载:2.18.0 引入 ClickHouse 存储后端原生支持(2026-05 博客)。

1.3 官方来源清单

来源地址用途
官网https://www.jaegertracing.io/产品入口、博客、下载页
官方文档 v2.22https://www.jaegertracing.io/docs/2.22/架构、配置、存储后端权威口径
Getting Started(2.22)https://www.jaegertracing.io/docs/2.22/getting-started/快速上手与端口说明
GitHub 官方仓库https://github.com/jaegertracing/jaeger源码与发布物(2026-10-19 实查 stars 23,310)
官方发布流https://github.com/jaegertracing/jaeger/releases.atom版本与发布时间
CNCF 项目页https://www.cncf.io/projects/jaeger/成熟度与关键时间线
CNCF 毕业公告https://www.cncf.io/announcements/2019/10/31/cloud-native-computing-foundation-announces-jaeger-graduation/毕业事实

二、软件概述

本文介绍的版本为 Jaeger 2.22.0(2026-10-06 发布)。

Jaeger 是端到端分布式链路追踪平台,用于在复杂分布式系统中监视与排障事务:应用侧完成埋点后,调用链路数据经 Jaeger 后端汇聚入存储,通过查询 API 与 Web UI 检索和分析。项目由 Uber 于 2016 年发起(CNCF 项目页记录首次提交 2016-04-18),2017 年 9 月进入 CNCF 孵化,2019 年 10 月 31 日作为第七个毕业项目从 CNCF 毕业。v2 起它成为 OpenTelemetry 生态的一部分:官方文档明确「Jaeger v2 是基于 OpenTelemetry Collector 框架的定制发行版」。

项目以 Apache-2.0 许可证开源,GitHub 仓库 jaegertracing/jaeger 2026-10-19 实查 stars 为 23,310。官方还提供 HotROD 示例应用(多服务演示链路追踪与 OpenTelemetry 接入)与服务性能监控(SPM)等配套能力。

三、核心架构

3.1 基于 OpenTelemetry Collector 的发行版

官方架构文档说明:Jaeger v2 二进制构建于 OpenTelemetry Collector 框架之上,由三类组件组成——上游官方组件(OTLP Receiver、Batch 与 Attribute Processor 等)、opentelemetry-collector-contrib 上游组件(Kafka Exporter/Receiver、Tail Sampling Processor 等)、以及 Jaeger 自有组件(Jaeger Storage Exporter、Jaeger Query Extension、Adaptive Sampling Processor、Remote Sampling Extension、Jaeger Storage Extension 等)。开发者可用 OpenTelemetry Collector Builder(ocb)构建自定义发行版。

3.2 运行角色

单个 Jaeger 二进制可通过配置扮演不同角色(官方架构文档):collector 接收埋点数据并写入存储;query 提供查询 API 与用户界面;ingester 从 Kafka 消费 span 写入存储(用于 collector 与存储之间经 Kafka 缓冲的拆分部署);all-in-one 将 collector 与 query 合并进单进程;agent 角色虽保留配置能力,但官方推荐直接使用标准 OpenTelemetry Collector 承担该层。all-in-one 与 collector/query 拆分均支持水平扩展,后者还能按读写流量分别扩缩并施加不同访问策略。

3.3 部署形态

两种主流可扩展部署(官方架构文档):直连存储(collector 直接写后端存储,需存储扛住峰值流量);经 Kafka 缓冲(collector 配置 Kafka exporter,额外部署 ingester 消费写入存储,多 ingester 自动分区负载,可防止峰值期间数据丢失)。

3.4 存储后端

官方 2.22 存储文档口径:主力的分布式存储后端为 Cassandra、Elasticsearch 与 OpenSearch(大规模生产推荐 OpenSearch 优先于 Cassandra);ClickHouse 位于特性开关之后作为实验性后端;另有 Badger(本地嵌入式,受单实例限制)、Memory(瞬态内存)等选项;并通过基于 gRPC 的 Remote Storage API v2 允许接入自定义存储(社区已有 PostgreSQL 等实现)。存储配置按主存储与归档存储双轨定义,归档存储用于把个别链路长期留存(需在 UI 手动触发保存),主存储通常按较短 TTL 滚动淘汰。

四、功能特性

4.1 全链路查询与用户界面

query 角色对外提供链路检索 API 与 Jaeger UI(默认端口 16686),支持按服务、操作、时间、标签等维度检索调用链,并以数据驱动的服务依赖图呈现系统拓扑(依赖分析由 spark-dependencies 作业从存储中分析 span 链接生成)。

4.2 多协议采集接入

官方 Getting Started 列出的 all-in-one 端口覆盖:OTLP gRPC(4317)与 OTLP HTTP(4318)——官方推荐的应用埋点通道;Zipkin 兼容端口 9411;以及 5778 等 Jaeger 传统协议端口。二进制内的接收器还支持经 Kafka 以 OTLP、Jaeger、Zipkin 等格式接收 span(架构文档接收器清单)。

4.3 采样体系

官方组件包括 Remote Sampling Extension(基于静态配置或自适应采样对外提供远程采样策略端点)与 Adaptive Sampling Processor(按服务与端点自动计算采样概率);经 OpenTelemetry 生态还可引入 tail-based sampling 处理器按链路尾部特征采样,并可用 OpenTelemetry Collector 在采集管线中做前置处理与富化(架构文档)。

4.4 服务性能监控与运维配套

SPM(Service Performance Monitoring)从链路数据聚合出服务级 RED 指标(官方设有专门快速开始文档);归档存储、多存储后端并存(jaeger_storage 配置多个 backend 并分别绑定查询与归档)等能力由配置体系承载;2.x 全部配置经 YAML 文件以 --config 参数注入,并支持以环境变量覆写其中的引用值(配置文档)。

五、快速上手

以下为官方 Getting Started 与 Download 页面的自建路径(本文未做本地实测)。Jaeger v2 对 macOS、Linux、Windows 均发布可执行二进制,位于 GitHub Releases 页(https://github.com/jaegertracing/jaeger/releases );最新版对应资产为 2.22.0。下载解压后运行 jaeger 可执行文件:官方配置文档说明二进制内已捆绑 all-in-one 角色(cmd/jaeger/internal/all-in-one.yaml),不传 --config 参数即以 all-in-one 形态启动,使用瞬态内存存储;随后访问 http://localhost:16686 打开 Jaeger UI。

应用侧接入按官方推荐使用 OpenTelemetry instrumentation 与 SDK,经 OTLP 上报(all-in-one 下 gRPC 4317、HTTP 4318)。切换角色或存储时按官方配置文档编写 YAML 并以 --config 传入,仓库 config-{storage}.yaml 系列示例覆盖各存储后端的 collector 角色,config-query.yaml 演示独立 query 角色。

体验与验证:官方 HotROD 示例(https://github.com/jaegertracing/jaeger/tree/main/examples/hotrod )模拟多服务打车应用,官方博客提供了完整的教学式导览,可用于演示依赖图、延迟定位与上下文传播等能力。来源标注:以上步骤与端口引自官方 Getting Started(https://www.jaegertracing.io/docs/2.22/getting-started/ )、Download(https://www.jaegertracing.io/download/ )与 Configuration(https://www.jaegertracing.io/docs/2.22/configuration/ )文档。

六、适用场景与限制

6.1 适用场景

  • 微服务调用链排障:跨服务请求的耗时分解、错误定位与依赖拓扑还原;
  • OpenTelemetry 标准化采集底座:以 OTLP 为统一入口,同时保留 Zipkin 协议兼容以利存量应用迁移;
  • 大规模可扩展后端:collector/query 按角色拆分水平扩展,经 Kafka 缓冲削峰,Cassandra/OpenSearch 承载海量 span;
  • 需要供应商中立与社区治理保障的场景:CNCF 毕业项目、Apache-2.0 许可证。

6.2 限制与注意点

  • Jaeger 只管链路追踪:指标与日志需交给 Prometheus、Loki 等其他后端,属于可观测性栈中的一环而非全家桶;
  • all-in-one 的内存存储仅适合开发测试(重启即失数据,官方明示不建议生产使用);Badger 受单实例限制只能承载适中数据量;生产必须外接 Cassandra/Elasticsearch/OpenSearch 等分布式存储并自行规划其容量与 TTL;
  • v1 已于 2025-12-31 停止维护,存量 v1 部署需要规划向 v2 的迁移;v2 配置体系从 v1 的环境变量与 YAML 混用转向以 OTel Collector 风格 YAML 为主,存量配置需要改写;
  • UI 检索能力以链路为中心,缺少内置的指标图表与告警,需要与 Grafana、SPM 等外围组合。

七、同类选型对比

7.1 对比对象

选取 Zipkin(Twitter 系老牌链路追踪)、Grafana Tempo(对象存储优先的链路后端)、Apache SkyWalking(APM 一体化观测平台)三个对象。stars 与最近发版于 2026-10-19 经 GitHub 仓库页面与 releases.atom 实查。

7.2 量化对比

维度Jaeger 2.22.0Zipkin 3.6.1Grafana Tempo v3.1.0SkyWalking 11.0.0
开源许可Apache-2.0(CNCF 毕业)Apache-2.0AGPL-3.0(Grafana Labs)Apache-2.0(Apache 顶级项目)
GitHub stars(2026-10-19)23,31017,4685,53824,971
最近发版2.22.0(2026-10-06)3.6.1(2026-04-08)v3.1.0(2026-09-29)11.0.0(2026-08-28)
版本节奏约 6-8 周一个次版本节奏放缓(3.5.1 于 2025-04,3.6.0 于 2026-03)活跃,次版本 + 补丁并行约半年一个大版本
架构与角色OTel Collector 发行版,多角色单二进制,外接分布式存储Spring Boot 单体服务端 + 存储插件查询/分发/压缩组件分离,依赖对象存储存原始 spanJava 一体化后端 + BanyanDB/存储选项,自带 UI 与告警
采集协议OTLP 原生 + Zipkin/Jaeger 协议兼容Zipkin 协议为核(另有 OTLP 经 collector 转换)OTLP/Jaeger/Zipkin 均可接收自有 agent(探针)为主 + OTLP 接入

7.3 选型建议

已在 OpenTelemetry 路线上、要一个中性且治理成熟的多角色链路后端,选 Jaeger;存量 Zipkin 埋点且场景简单、希望轻量运维可继续用 Zipkin;指标日志链路已全押 Grafana 栈、想用对象存储把链路保存成本压到最低,选 Tempo;要开箱即用的 APM 一体化能力(探针、拓扑、指标、告警一体)且接受其自有 agent 体系,选 SkyWalking。

八、参考链接