序
前言
第一部分 可观测性的路径
第1章 什么是可观测性
1.1 可观测性的数学定义
1.2 把可观测性应用到软件系统
1.3 关于软件可观测性的错误描述
1.4 为什么现在可观测性很重要
1.5 使用指标进行调试与使用可观测性进行调试的对比
1.6 使用可观测性进行调试
1.7 可观测性适用于现代系统
1.8 结论
第2章 可观测性和监控之间的调试实践有何不同
2.1 监控数据如何用于调试
2.2 可观测性如何实现更好的调试
2.3 结论
第3章 不通过可观测性扩展系统的经验教训
3.1 关于Parse的介绍
3.2 Parse的扩展实践
3.3 向现代系统演进
3.4 向现代化实践变革
3.5 在Parse的转变实践
3.6 结论
第4章 可观测性与DevOps、SRE和云原生的关联
4.1 云原生、DevOps和SRE简介
4.2 可观测性:调试方式的过去与现在
4.3 可观测性增强了DevOps和SRE的实践
4.4 结论
第二部分 可观测性基础
第5章 结构化事件—可观测性的构建块
5.1 通过结构化事件进行调试
5.2 指标作为构建块的局限性
5.3 传统日志作为构建块的局限性
5.4 在调试中有用的事件属性
5.5 结论
第6章 将事件拼接成链路
6.1 分布式链路追踪及其重要性
6.2 链路追踪的组件
6.3 硬编码探针构建链路追踪
6.4 将自定义字段添加到链路span
6.5 将事件拼接到链路中
6.6 结论
第7章 遵照OpenTelemetry的探针
7.1 探针简介
7.2 开源探针标准
7.3 使用基于代码的示例的探针
7.4 结论
第8章 通过事件分析实现可观测性
8.1 从已有条件调试
8.2 从第一性原理调试
8.3 AIOps的误导性承诺
8.4 结论
第9章 可观测性和监控的融合
9.1 监控适合的地方
9.2 可观测性适合的地方
9.3 系统与软件注意事项
9.4 评估你的组织需求
9.5 结论
第三部分 团队的可观测性
第10章 在团队中应用可观测性实践
10.1 参与社区
10.2 从最大的痛点着手
10.3 购买代替自建
10.4 反复完善你的探针
10.5 温和改进,积极复用
10.6 全力冲刺
10.7 结论
第11章 可观测性驱动开发
11.1 测试驱动开发
11.2 软件开发生命周期中的可观测性
11.3 从哪里开始调试
11.4 微服务时代的调试
11.5 探针如何提高可观测性
11.6 可观测性左移
11.7 利用可观测性加快软件交付
11.8 结论
第12章 使用SLO来提高可靠性
12.1 传统监控方法造成危险的告警疲劳
12.2 阈值告警只适用于“已知的未知”情况
12.3 用户体验是一颗北极星
12.4 什么是SLO
12.5 结论
第13章 处理和调试基于SLO的告警
13.1 在错误预算消耗完之前发出告警
13.2 将时间定义成一个滑动窗口
13.3 预见性地创建预测消耗告警
13.4 使用SLO与时间序列数据的可观测性数据
13.5 结论
第14章 可观测性与软件供应链
14.1 为什么Slack需要可观测性
14.2 探针:共享客户端库和维度
14.3 案例研究:软件供应链的运营
14.4 结论
第四部分 大规模可观测性
第15章 自建与购买以及投资回报率
15.1 如何分析可观测性的投资回报率
15.2 自建的真实成本
15.3 购买软件的真实成本
15.4 购买与自建不是二元选择
15.5 结论
第16章 高效的数据存储
16.1 可观测性的功能要求
16.2 案例研究:Honeycomb的列式数据存储实现
16.3 结论
第17章 如何使采样精准且便宜
17.1 使用采样策略来优化数据采集
17.2 使用不同的采样策略
17.3 将采样策略转化为代码
17.4 结论
第18章 使用流水线进行遥测管理
18.1 遥测流水线的属性
18.2 管理一个遥测流水线:解剖
18.3 管理遥测流水线时的挑战
18.4 用例:Slack的遥测管理
18.5 开源替代方案
18.6 管理遥测流水线:自建与购买
18.7 结论
第五部分 传播可观测性文化
第19章 可观测性的商业案例
19.1 被动引入变更的方法
19.2 可观测性的投资回报
19.3 主动引入变更的方法
19.4 将可观测性引入实践
19.5 使用合适的工具
19.6 知道何时你有足够的可观测性
19.7 结论
第20章 可观测性利益相关方和联盟
20.1 识别非工程可观测性需求
20.2 在实践中创建可观测性同盟
20.3 使用可观测性与商业智能工具
20.4 在实践中结合使用可观测性和商业智能工具
20.5 结论
第21章 可观测性成熟度模型
21.1 关于成熟度模型的说明
21.2 为什么可观测性需要成熟度模型
21.3 关于可
展开