1. 课程导论:分布式链路追踪与 Jaeger 概述,课程目标与学习路径
1.1 为什么需要分布式链路追踪?
在单体应用时代,一次请求的调用栈清晰可查,日志、指标和异常堆栈足以定位绝大多数问题。当架构演进为微服务、Serverless 和 Service Mesh 后,一个用户请求往往跨越数十甚至上百个服务节点。传统的监控手段(单机日志、聚合指标)只能告诉你“哪个服务慢了”,却无法回答“这个慢请求到底经过了哪些服务?瓶颈在哪一环?”。
分布式链路追踪(Distributed Tracing)正是为解决这一困境而生。它通过为每个请求注入全局唯一的 Trace ID,在服务间传递上下文,完整记录请求从入口到出口的完整调用拓扑与耗时细节。
核心价值:从“黑盒”到“白盒”,让分布式系统中的每一次调用都有迹可循。
1.2 Jaeger 是什么?
Jaeger 是 CNCF(云原生计算基金会)毕业的开源分布式追踪系统,最初由 Uber 开发并捐赠。它基于 Google Dapper 设计,提供端到端的请求追踪、服务拓扑分析、性能诊断与根因定位能力。
| 特性 | 说明 |
|---|---|
| 开源与生态 | CNCF 毕业项目,与 Prometheus、Grafana、Kubernetes 深度集成 |
| 多语言 SDK | 支持 Go、Java、Python、Node.js、C++ 等主流语言 |
| 存储后端 | 支持 Cassandra、Elasticsearch、Kafka、Badger 等多种存储 |
| 采样策略 | 头部采样、尾部采样、自适应采样,兼顾性能与数据完整性 |
| UI 与 API | 提供可视化查询界面、服务拓扑图、Trace 对比、gRPC/HTTP API |
1.3 Jaeger 核心架构
Jaeger 的架构分为客户端(Agent/Collector)和服务端(Query/UI),数据流清晰可扩展。下图展示了 Jaeger 的核心组件与数据流转路径。
1.4 课程目标
本课程不是单纯的 Jaeger 工具操作手册,而是围绕“服务画像”与“配置发布故障快速定位”两个核心场景,构建一套可复用的链路数据驱动诊断体系。完成本课程后,你将能够:
- 掌握 Jaeger 部署与配置:从单机到生产级集群部署,理解采样、存储、UI 调优。
- 构建服务画像:利用链路数据提取服务依赖、调用频率、延迟分布、错误模式,形成服务健康基线。
- 配置发布故障定位:在配置变更、版本发布、灰度上线等场景中,通过链路对比与异常检测,分钟级定位根因。
- 集成可观测性栈:将 Jaeger 与 Prometheus、Grafana、Loki 联动,实现 Metrics、Logs、Traces 三位一体。
课程定位:面向 SRE、后端开发、可观测性工程师,要求具备基础的微服务与容器化知识。无需提前掌握 Jaeger。
1.5 学习路径与章节地图
课程共 30 章,分为四个阶段,循序渐进。下表展示了每个阶段的核心主题与产出物。
| 阶段 | 章节范围 | 核心主题 | 阶段产出 |
|---|---|---|---|
| 基础篇 | 第 1-8 章 | 链路追踪原理、Jaeger 部署、SDK 接入、采样策略 | 可运行的 Jaeger 集群 + 示例应用链路数据 |
| 画像篇 | 第 9-16 章 | 服务拓扑构建、延迟基线、错误模式、依赖分析 | 服务画像仪表盘 + 基线告警规则 |
| 定位篇 | 第 17-24 章 | 配置发布故障场景、Trace 对比、根因分析、混沌工程 | 故障定位 SOP + 自动化分析脚本 |
| 进阶篇 | 第 25-30 章 | 大规模部署、自适应采样、与 Service Mesh 集成、AIOps 探索 | 生产级 Jaeger 架构方案 + 智能诊断原型 |
建议学习者按照章节顺序推进,每章结束后完成配套实验。基础篇与画像篇是后续定位篇的基石,切勿跳跃。
1.6 本章小结
- 分布式链路追踪是微服务可观测性的核心支柱,Jaeger 是 CNCF 生态中最成熟的追踪系统之一。
- Jaeger 架构由 Agent、Collector、存储、Query/UI 四层组成,数据流清晰,易于水平扩展。
- 本课程以“服务画像”和“配置发布故障定位”为双主线,覆盖从部署到智能诊断的全链路。
- 学习路径分为基础、画像、定位、进阶四个阶段,建议按顺序完成。
课前准备:请确保本地或云端具备 Docker / Kubernetes 运行环境,并安装好 Jaeger All-in-One 镜像(jaegertracing/all-in-one:latest)用于后续实验。