重点摘要
1. 可观测性革命化软件系统理解
可观测性是衡量你能多好地理解和解释系统可能进入的任何状态,无论多么新奇或怪异。
范式转变。 可观测性将控制理论概念应用于现代软件系统,使工程师能够通过外部输出理解内部状态。与依赖预定义指标和阈值的传统监控不同,可观测性允许对系统行为进行临时查询和探索。
应对复杂性。 随着系统变得更加分布式和动态化,传统监控的局限性变得明显。可观测性在以下环境中表现出色:
- 微服务架构创造了复杂的依赖关系
- 云原生部署引入了短暂资源
- 持续交付实践导致频繁变化
文化影响。 采用可观测性实践改变了团队处理生产系统的方式:
- 鼓励主动探索而非被动救火
- 使团队成员能够共同理解系统
- 打破开发和运维之间的隔阂
2. 事件,而非指标,是可观测性的构建块
如果你接受我们的可观测性定义——它是关于未知的未知,意味着能够提出任何问题,理解任何内部系统状态,而无需提前预测或预见——那么你必须满足一些技术前提才能实现这一定义。
丰富的上下文。 事件捕捉系统交互的完整上下文,包括:
- 请求参数
- 系统状态
- 性能指标
- 用户标识符
- 业务特定数据点
灵活性。 与预聚合指标不同,事件允许:
- 任意切片和分割数据
- 高基数和高维度查询
- 发现以前未知的模式和关联
实施。 结构化事件应:
- 为每个重要的系统交互发出
- 设计为宽泛的,包含许多字段
- 能够捕捉技术和业务上下文
3. 跟踪通过将事件连接在一起提供关键上下文
在一个可观测的系统中,跟踪只是一个相互关联的事件系列。
端到端可见性。 跟踪连接分布式系统中的事件,揭示:
- 服务依赖关系
- 性能瓶颈
- 错误传播
关键组件:
- 跟踪ID:整个请求流的唯一标识符
- 跨度ID:跟踪中每一步的标识符
- 父ID:建立跨度之间的层次关系
- 时间戳和持续时间:捕捉时间信息
超越传统用例。 跟踪概念可以应用于:
- 非分布式系统的性能分析
- 批处理作业以了解处理步骤
- Lambda函数以跟踪无服务器工作流
4. 可观测性使从第一原理调试成为可能
第一原理是关于系统的基本假设,而不是从另一个假设推导出来的。
科学方法。 可观测性工具支持系统化的调试过程:
- 从系统的整体视图开始
- 验证观察到的行为是否符合预期
- 系统地探索维度以识别模式
- 过滤和深入分析以隔离问题
- 重复直到发现根本原因
自动化。 高级可观测性工具可以:
- 将异常行为与基线进行比较
- 突出事件属性中的显著差异
- 提出潜在的调查领域
文化转变。 从第一原理调试:
- 减少对部落知识的依赖
- 赋能经验较少的团队成员
- 鼓励好奇心和探索
5. SLO和错误预算创建可操作的警报
错误预算燃烧警报旨在提供关于未来SLO违规的早期警告,如果当前燃烧率继续下去,将会发生这些违规。
定义可靠性。 服务级目标(SLO)提供:
- 系统可靠性的明确目标
- 工程和业务利益相关者之间的共同语言
- 在可靠性和功能开发之间进行权衡的框架
错误预算。 通过量化可接受的不可靠性水平,错误预算:
- 创建一个有限的资源来管理
- 鼓励主动的可靠性改进
- 提供一个客观的衡量标准,用于确定何时优先考虑稳定性而非新功能
可操作的警报。 基于SLO的警报:
- 关注客户影响的问题
- 通过消除噪音减少警报疲劳
- 提供优先级和决策的上下文
6. 采样策略在保持保真度的同时优化资源使用
在规模上,优化数据集以降低资源成本的需求变得至关重要。但即使在较小的规模上,减少保留的数据也能提供有价值的成本节约。
平衡。 采样策略旨在:
- 减少数据量和相关成本
- 保持分析的统计准确性
- 保留重要事件和异常值
关键技术:
- 恒定概率采样:简单但可能错过罕见事件
- 动态速率采样:根据流量调整
- 基于内容的采样:根据属性优先处理事件
- 基于头部与尾部的采样:考虑何时做出采样决策
实施考虑:
- 跨服务的一致采样
- 在分布式跟踪中传播采样决策
- 能够重建原始数据分布
7. 在分布式系统时代,可观测性是业务必需品
在你的系统中引入可观测性的商业案例是减少服务中问题的检测时间(TTD)和解决时间(TTR)。
有形利益:
- 更快的事件解决
- 改善客户满意度
- 减少工程师倦怠
- 提高功能开发速度
文化转型。 可观测性实践:
- 赋能工程师理解和掌控他们的系统
- 打破开发、运维和业务团队之间的隔阂
- 培养持续改进和学习的文化
实施策略:
- 从高影响力、痛点服务开始
- 通过快速胜利展示价值
- 投资于工具和培训
- 建立明确的改进指标(如TTD、TTR)
- 逐步扩展到整个组织
最后更新日期:
评论
《可观测性工程》评价褒贬不一,平均评分为3.78分(满分5分)。读者赞赏该书对可观测性概念的介绍及其对社会技术系统的重视。然而,许多人认为书中内容重复,缺乏实际例子,并且过于专注于区分可观测性与监控。一些人称赞其革命性理念,而另一些人则批评其篇幅过长且技术深度不足。该书被认为是理解可观测性的良好起点,但在为工程师提供详细实施指导方面有所欠缺。