分布式追踪与事件
通过分布式追踪分析请求流,并使用 Kubernetes 事件获取集群级信号,完善您的可观测性工具集。
分布式追踪与事件 是 CoddyKit 上的免费 Kubernetes Basics 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Kubernetes Basics 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Kubernetes Basics 课程共包含 4 节课。
可观测性的三大支柱
可观测性建立在三大支柱之上:日志、指标和追踪。您已经了解了日志和指标;本课将介绍追踪以及 Kubernetes 事件。
什么是分布式追踪?
分布式追踪会跟踪单个请求在多个服务之间传递的全过程。它会显示时间花在哪里,以及哪个服务导致了错误。
跨度与追踪
追踪是请求的完整历程。每一步都是一个跨度,包含开始时间、持续时间和元数据。多个跨度嵌套后会形成一棵树。
# A trace for one checkout request
# trace_id: abc123
# span: api-gateway (40ms)
# span: order-service (25ms)
# span: db-query (15ms)
# span: payment-service (10ms)上下文传播
要使追踪正常工作,各个服务需要在请求标头中传递追踪上下文,这样每一跳都能关联到同一条追踪记录。
# W3C Trace Context header
traceparent: 00-abc123def456-00f067aa0ba902b7-01OpenTelemetry
OpenTelemetry (OTel) 是对应用进行插桩并导出追踪数据的标准。OpenTelemetry 收集器可以在集群中运行,用于接收和转发跨度。
追踪后端
跨度会发送到 Jaeger 或 Tempo 等后端。后端会存储并可视化追踪数据,让您可以深入查看速度缓慢的请求。
# deploy a collector that exports to Jaeger
kubectl get pods -n observability -l app=otel-collectorKubernetes 事件
与应用追踪分开,Kubernetes 会发出描述集群活动的事件:调度、拉取镜像、探针失败等。
kubectl get events --sort-by=.lastTimestamp读取资源的事件
kubectl describe 会显示与特定对象相关的事件,这通常是了解容器组为何卡住的最快方法。
kubectl describe pod my-app
# Events:
# Warning FailedScheduling no nodes available
# Normal Scheduled assigned to node-2
# Warning BackOff restarting failed container事件的生命周期很短
事件默认会在大约一小时后过期。若要长期保留集群历史记录,请将事件导出到日志或事件后端,以免丢失这些信号。
关联信号
真正的力量来自关联所有来源:指标出现峰值后,您可以找到一条追踪记录;追踪记录指向某个服务;该服务的日志和事件则说明根本原因。
何时使用追踪
- 请求速度很慢,但您不知道是哪个服务导致的
- 错误出现在一长串微服务的深处
- 您需要了解跨服务依赖关系
快速检查
测试您对追踪的了解。
回顾
您学习了可观测性的第三个支柱:分布式追踪通过跨度和上下文传播,通常经由 OpenTelemetry 将请求跨服务跟踪到 Jaeger 或 Tempo。您还学习了如何读取生命周期很短的 Kubernetes 事件来进行集群级诊断,以及如何综合关联日志、指标、追踪和事件。
常见问题解答
「分布式追踪与事件」课时是免费的吗?
是的 — 「分布式追踪与事件」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Kubernetes Basics 课程的其余内容,请升级到 CoddyKit PRO。 Kubernetes Basics 课程共包含 4 节课。
「分布式追踪与事件」这节课中我会学到什么?
通过分布式追踪分析请求流,并使用 Kubernetes 事件获取集群级信号,完善您的可观测性工具集。 你通过在浏览器中直接运行的动手代码来练习 Kubernetes Basics,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Kubernetes Basics 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Kubernetes Basics 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「分布式追踪与事件」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Kubernetes Basics 课中编写并运行代码吗?
能。每节 Kubernetes Basics 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。