1个容器跑通分布式追踪:Jaeger All-in-One快速上手指南
【免费下载链接】jaegerCNCF Jaeger, a Distributed Tracing Platform项目地址: https://gitcode.com/GitHub_Trending/ja/jaeger
Jaeger 是 CNCF 毕业级别的分布式追踪系统,v2 版本完全构建在 OpenTelemetry Collector 之上,解决的是微服务架构下的定位难题:一个请求穿过十几个服务后变慢或报错,你很难说清卡在哪一环。这篇指南面向刚接触链路追踪的开发者,带你用最小成本在本地搭出一套可查、可采样、可接生产存储的追踪环境。
请求变慢时,你该先看什么?
想象一个结账接口偶尔超时。翻日志时,订单服务说调用支付没超时,支付服务说数据库查询正常——每段日志单独看都没问题,拼起来才发现问题出在两个服务之间。手动串日志既慢又容易漏。Jaeger 的做法是:
- 一条 trace 串起整条链路。所有服务的 span 通过 OTLP 汇入同一个 Collector,在 UI 里展开时间线,哪一跳耗时最长、哪一跳报了错,一眼定位。
- 不用先搭全家桶。all-in-one 镜像内置 UI、Collector、Query 服务和内存存储,一个容器就能跑起来,等稳定了再接真实存储。
- 兼容你已有的埋点。OTLP、Jaeger、Zipkin 三组接收器在默认配置里全开着,见 cmd/jaeger/config.yaml,老应用换协议不用改代码。
不同阶段该启用哪些模块
初期验证:all-in-one 加一个演示应用
刚上手时别急着上生产存储。仓库自带的 HotROD 演示应用是一个多微服务电商,用 OpenTelemetry SDK 埋点,跑起来后在浏览器点几下,UI 里立刻有真实的跨服务调用可看。它的 UI 有四个标签页:Search 查链路、Compare 对比两条 trace、System Architecture 看服务依赖图、Monitor 看指标,见 examples/hotrod/。
如果暂时没有真实流量,可以用仓库里的tracegen工具生成一条稳定的 trace 流,官方说明它专门用于性能调试验证,见 cmd/tracegen/README.md。
接入生产:选定存储后端和采样策略
存储是部署时的第一个决策点。v2 在 internal/storage/v2/ 下提供 memory、badger、cassandra、clickhouse、elasticsearch 几套后端:内存和 badger 适合单机试验,cassandra、clickhouse、elasticsearch 适合长期留存。默认配置里的内存后端限了 10 万条 trace,够试验、不够生产,接后端时记得替换。
采样策略同样内置了两条路线:基于文件的静态策略(cmd/jaeger/sampling-strategies.json)和自适应采样,后者由配置中的adaptive_sampling处理器驱动,会根据实际负载动态调整采样率,适合流量波动大的场景。
进阶观测:让 trace 反推出 RED 指标
链路数据别只用来排障。Jaeger 的 Service Performance Monitoring 会从 span 数据里聚合出按服务、按操作分组的请求量、错误率、延迟(RED)指标,在 UI 的 Monitor 标签页直接出图,也可以经 jaeger-query 的 API 拉走。仓库里 docker-compose/monitor/ 提供了一整套演示环境,支持 Prometheus 或直接从 ES/OS 查询两种模式。
3步跑通你的第一套链路
第一步,起 all-in-one 容器:
docker run --rm --name jaeger \ -p 16686:16686 -p 4317:4317 -p 4318:4318 \ jaegertracing/jaeger:latest第二步,打开 UI 并接上数据:浏览器访问http://localhost:16686,应用侧把 span 通过 gRPC 发到 4317 或 HTTP 发到 4318,Search 页签即可检索。
第三步,用 HotROD 造真实流量:拉取 examples/hotrod/docker-compose.yml 后执行docker compose up,前端在http://localhost:8080,随便点几个页面,Jaeger UI 里就能看到完整的微服务调用链。
进阶技巧与社区参与 🛠️
生产化之前,先对照官方的存储后端支持策略(2026 年 7 月口径)选版本,避免踩到不受支持的分支:
| 后端 | 策略覆盖的版本 |
|---|---|
| Elasticsearch | 9.x;8.19.x(至 8.x 维护窗口结束) |
| OpenSearch | 3.x;2.x(2.19.x 为当前维护线) |
| Cassandra | 5.0.x;受维护的 4.x |
| ClickHouse | 26.3 LTS 与 25.8 LTS |
升级时也有保障:被弃用的配置项,官方承诺至少保留3 个月或两个 minor 版本(取较晚者)才会移除,具体规则见 README.md 中的兼容性章节。
想参与建设的话,项目采用 CNCF 开放式治理,CONTRIBUTING.md 列出的贡献思路里有不少不需要写代码也能上手的。
一句话总结:Jaeger 让你用最短的路径从"翻日志猜"切换到"看图定位"——现在就起一个容器,把第一条链路查出来。
核心关键词:Jaeger 分布式追踪 长尾关键词:Jaeger all-in-one 部署、Jaeger 存储后端选择、Jaeger 采样策略配置、微服务链路排查、Jaeger trace 查询 UI、分布式追踪 RED 指标监控
【免费下载链接】jaegerCNCF Jaeger, a Distributed Tracing Platform项目地址: https://gitcode.com/GitHub_Trending/ja/jaeger
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考