1. 可观测性基础:三大支柱与采样必要性
1.1 可观测性三大支柱的定义
可观测性(Observability)是 SRE 和平台工程的核心能力,它通过对外输出数据的分析,推断系统内部状态。业界公认的三大数据支柱为:Metrics(指标)、Logs(日志)、Traces(链路)。三者各自独立又相互补充,共同构成完整的可观测性视图。
| 支柱 | 定义 | 典型数据 | 主要用途 |
|---|---|---|---|
| Metrics | 可聚合的数值型时间序列数据,描述系统在某一时刻的状态 | CPU 使用率、QPS、P99 延迟、错误率 | 实时监控、告警、容量规划、仪表盘 |
| Logs | 带时间戳的离散事件记录,描述系统发生了什么 | 应用日志、访问日志、错误堆栈、审计日志 | 故障排查、审计合规、详细事件分析 |
| Traces | 端到端请求路径的分布式追踪,描述请求如何穿越多个服务 | Span 树、服务依赖图、耗时分布、错误传播 | 性能瓶颈定位、依赖关系分析、分布式故障诊断 |
核心认知:三大支柱不是孤立的。Metrics 告诉你“哪里出了问题”,Logs 告诉你“具体发生了什么”,Traces 告诉你“问题是怎么传播的”。只有三者联动,才能实现真正的可观测性。
1.2 三大支柱的关系
三大支柱在数据形态、存储成本和查询模式上存在显著差异,但在实际排障中需要协同工作。下图展示了它们之间的典型关联关系:
关键洞察:Traces 的数据量通常比 Metrics 高出 2~3 个数量级。一个高 QPS 的微服务系统,每天产生的 Span 数据可能达到 PB 级别,直接存储全部链路数据在成本上是不可接受的。
1.3 为什么需要采样
采样(Sampling)是控制可观测性数据量的核心手段。在分布式系统中,不采样会导致以下问题:
- 存储成本失控:全量链路数据存储成本远超基础设施预算,尤其在高 QPS 场景下。
- 网络带宽瓶颈:大量 Span 和 Log 数据从业务节点传输到后端,占用大量内网带宽。
- 查询性能下降:海量数据导致查询响应变慢,影响排障效率。
- 后端处理压力:Collector、存储引擎需要处理远超设计容量的数据,容易引发级联故障。
采样策略的目标是在数据保真度和成本控制之间找到平衡。下图展示了采样在数据管道中的位置:
1.4 采样的核心收益
| 维度 | 不采样 | 合理采样 |
|---|---|---|
| 存储成本 | 每月数十万 ~ 数百万美元 | 降低 80%~95% |
| 网络带宽 | 占用大量业务带宽 | 控制在可接受范围 |
| 查询速度 | 秒级 ~ 分钟级响应 | 毫秒级 ~ 秒级响应 |
| 排障能力 | 数据完整但查询困难 | 关键链路完整,快速定位 |
| 运维复杂度 | 后端系统频繁过载 | 系统稳定,可预测 |
常见误区:采样不等于丢失数据。好的采样策略会优先保留错误链路、慢请求、高价值业务链路,同时丢弃正常且无异常的请求。采样率 1% 并不意味着只看到 1% 的问题,而是用 1% 的成本覆盖 99% 的异常场景。
1.5 本章小结
- 三大支柱(Metrics、Logs、Traces)各自解决不同层面的可观测性问题,必须协同使用。
- Traces 数据量巨大,是全量存储的主要成本来源,也是采样的主要对象。
- 采样是必要手段,不是可选项。没有采样策略的可观测性系统,在规模增长后必然崩溃。
- 采样决策点分为头采样和尾采样,后续章节将深入讲解 OTel 中的具体实现策略。