2. 可观测性基础:三大支柱(日志、指标、链路追踪)的概念与关系,可观测性与监控的区别

2.1 从监控到可观测性:思维模式的转变

在发布工程与微服务架构中,传统监控(Monitoring)与可观测性(Observability)常被混用,但二者存在本质区别。监控回答“已知的已知”——你预先定义了故障模式(如 CPU > 90%),系统告警;可观测性回答“未知的未知”——系统行为异常但无预设规则时,你仍能通过数据推断根因。

维度 监控(Monitoring) 可观测性(Observability)
核心问题 系统是否在运行? 系统为什么这样运行?
数据来源 预定义的指标与阈值 日志、指标、链路追踪的关联分析
故障处理 已知故障模式的告警 未知故障模式的探索与根因定位
依赖条件 需要提前编写规则 需要高基数、高维度的数据
典型工具 Prometheus + Alertmanager OpenTelemetry + Jaeger + Grafana
关键认知: 可观测性不是监控的替代品,而是监控的进化。监控告诉你“出事了”,可观测性告诉你“为什么出事”。

2.2 可观测性三大支柱

业界公认的可观测性数据模型包含三大支柱(Three Pillars):日志(Logs)、指标(Metrics)、链路追踪(Traces)。三者各自独立又相互补充,共同构成系统可观测性的数据基础。

2.2.1 日志(Logs)

  • 定义: 离散的、带时间戳的事件记录,描述系统在某个时刻发生了什么。
  • 特点: 高信息密度,包含错误堆栈、业务上下文;但非结构化或半结构化,检索成本高。
  • 典型场景: 错误排查、审计追踪、业务行为记录。
  • OpenTelemetry 中的日志: 通过 LogRecord API 采集,支持与 Trace 关联(trace_id / span_id)。

2.2.2 指标(Metrics)

  • 定义: 可聚合的数值型时间序列数据,描述系统在某个时间段的统计特征。
  • 特点: 低存储成本,支持预聚合与告警;但丢失了单个请求的细节。
  • 典型场景: 服务 QPS、延迟 P99、错误率、资源利用率。
  • OpenTelemetry 中的指标: 支持 Counter、Histogram、Gauge、UpDownCounter 等 Instrument 类型。

2.2.3 链路追踪(Traces)

  • 定义: 端到端的请求执行路径,由多个 Span 组成,描述请求在分布式系统中的流转过程。
  • 特点: 保留请求级上下文,支持跨服务关联;但数据量大,需要采样策略。
  • 典型场景: 分布式请求延迟分析、依赖关系发现、瓶颈定位。
  • OpenTelemetry 中的链路追踪: 通过 Tracer 创建 Span,支持父子关系与 Context Propagation。
实践建议: 在发布工程自助门户中,日志用于记录发布操作的每一步结果;指标用于监控发布速率与成功率;链路追踪用于追踪一次发布请求从用户点击到后端执行的全路径。

2.3 三大支柱的关系:关联而非孤立

三大支柱并非各自为政,而是通过关联机制形成统一的数据视图。OpenTelemetry 的核心价值之一就是建立这种关联。

三大支柱关联关系图 日志 (Logs) 离散事件记录 指标 (Metrics) 聚合数值序列 链路追踪 (Traces) 请求执行路径 聚合 采样 trace_id / span_id 关联 OpenTelemetry 统一数据模型 日志携带 trace_id → 关联到具体 Span → Span 聚合为指标 三大支柱通过 Context Propagation 实现端到端关联 图:三大支柱通过 OpenTelemetry 的 Context 机制形成关联,而非孤立存在

2.4 三大支柱在发布工程中的协作场景

以一次“发布新版本”操作为例,展示三大支柱如何协同工作:

  1. 用户发起发布请求 → 链路追踪创建一个 Root Span,记录请求开始。
  2. 后端执行发布流水线 → 每个步骤(拉取镜像、更新配置、滚动重启)生成子 Span,记录耗时。
  3. 发布过程中产生日志 → 每个 Span 关联的日志记录具体错误信息(如“镜像拉取超时”)。
  4. 发布完成后更新指标 → 发布成功率计数器 +1,发布延迟 Histogram 记录本次耗时。
  5. 故障排查 → 通过指标发现发布失败率突增 → 通过链路追踪找到失败集中在“滚动重启”步骤 → 通过关联日志定位到“健康检查端口未就绪”。
常见误区: 不要只采集三大支柱中的一种或两种。缺少日志,你无法知道错误详情;缺少指标,你无法感知趋势;缺少链路追踪,你无法在分布式系统中定位瓶颈。三者缺一不可。

2.5 可观测性成熟度模型

团队在建设可观测性时,通常会经历以下阶段:

阶段 特征 典型表现
L1:基础监控 只有指标,无日志关联 收到告警后需要手动登录服务器查日志
L2:数据采集 三大支柱均已采集,但各自独立 日志、指标、链路追踪在不同系统中查看
L3:关联分析 三大支柱通过 trace_id 关联 从指标下钻到链路,从链路跳转到日志
L4:主动洞察 基于关联数据的自动化根因分析 系统自动推荐可能的故障根因
课程目标: 本课程将帮助你的发布工程自助门户达到 L3 甚至 L4 成熟度,实现三大支柱的深度关联与自动化分析。

2.6 本章小结

  • 可观测性 ≠ 监控;可观测性解决“未知的未知”,监控解决“已知的已知”。
  • 三大支柱(日志、指标、链路追踪)各自独立,但通过 OpenTelemetry 的 Context Propagation 实现关联。
  • 在发布工程中,三大支柱协作覆盖“发布前-发布中-发布后”全生命周期。
  • 可观测性成熟度从 L1 到 L4,本课程聚焦 L3 关联分析能力的构建。