可观测性缺口也是一种债
可观测性缺口指的是关键路径上缺少必要的日志、指标与链路信息,导致排障只能靠猜。典型表现是错误没有日志、日志里没有可关联的请求标识、关键状态变更没有审计记录。治理方式是盘点关键接口的覆盖情况,把排障时缺什么记录下来作为改进项,在开发阶段按关键路径补齐,而不是等事故发生后再补。
盘点范围
| 对象 | 关键接口的日志、指标与链路追踪覆盖情况 |
|---|---|
| 信号 | 事故排障依赖猜测、问题难以复现 |
| 动作 | 按关键路径补齐结构化日志与关联标识 |
| 配套 | 明确字段规范,避免各家日志格式互不相认 |
典型使用场景
- 事故复盘后的改进:把排障过程中缺失的信息整理为待补清单
- 新服务上线前检查:确认关键路径的日志与指标已覆盖
- 跨服务排查:核对请求标识是否贯穿调用链,能据此还原路径
- 审计要求落地:关键状态变更记录操作者、时间与前后值
- 日志规范治理:统一字段命名,便于聚合与检索
排障清单示例
排障清单示例
# 按关键路径逐项核对
- 每个外部依赖调用是否记录耗时与结果码
- 日志是否携带请求或链路关联标识
- 关键状态变更是否有审计记录(操作者、时间、前后值)
- 错误日志是否包含可定位的上下文(入参摘要、影响范围)
- 关键业务指标是否可观测(成功率、耗时分布、队列长度)缺口与影响
| 缺口 | 后果 | 补齐方式 |
|---|---|---|
| 错误无日志 | 事故只能靠猜,无法定位根因 | 在错误处理路径统一记录上下文 |
| 日志缺关联标识 | 跨服务调用无法串联 | 在入口生成标识并透传到下游 |
| 关键路径无指标 | 问题发现依赖用户反馈 | 为核心链路补成功率和耗时指标 |
| 状态变更无审计 | 合规检查无法通过 | 记录操作者、时间与变更前后值 |
| 字段命名随意 | 难以聚合分析 | 统一结构化字段规范 |
日志与指标要区分用途:日志用于还原单次请求的细节,指标用于观察整体分布与趋势。只补日志不补指标,仍然无法在问题扩大前察觉异常。
日志中不要记录敏感信息:口令、完整证件号、支付凭据一旦写入日志,会随日志收集与转储扩散,形成合规与安全风险。写入前先做脱敏或只保留摘要。
落地检查清单
- 关键路径的日志与指标覆盖有盘点记录
- 日志字段规范统一,便于聚合检索
- 请求标识贯穿调用链
- 日志内容经过敏感信息检查