
可观测性驱动开发
|
107
•
上述因素的某种组合。
如果没有可观测性,你可能会看到所有性能图表同时出现峰值或下降。
11.5 探针如何提高可观测性
可观测性有助于准确定位问题的根源,发现常见或者大规模的异常情况。可观测性也可
用于快速识别问题,例如,特定的构建
ID
、一组主机、一类实例、容器版本、内核补丁
版本、数据库或其他任何细节上的问题,用可观测性发现是一个非常理想的选择。
然而,可观测性的一个更重要的组成就是创造了更加有用的探针。良好的探针推动可观
测性。探针的一种最佳实践,是在合并别人的代码时就开始考虑。在没有考虑清楚“我
怎么知道这个更改是否按照预期工作?”这个问题之前,永远不要提交或者接受合并相
关代码的请求。
开发探针时,一个比较重要的目标是创造有效机制和更短的反馈闭环。换句话说,可以
让发布代码和修复错误之间产生必要的联系,这就是传说中的“让工程师值班”。
实现这种循环的一种方式是,将告警自动发给刚合并代码并且要上线的工程师。在一段
时间内(可能是
30
分钟到
1
小时),如果生产环境中出现了告警,告警就会发送给提交
代码且刚上线的工程师。当工程师在生产环境中体验到他们自己代码的质量时,他们检
查代码并且更快地隔离或者解决问题的能力(动机)就会自然而然地增加。
这种机制并不是惩罚。相反,它对加强代码的“主人翁”意识有着非常大的作用。如果
工程师不能及时收到线上的问题和反馈,就不能开发出满足生产环境质量要求的代码和
工程实践。每个工程师都应该对自己的代码负责,以便他们可以在代码部署后立即回答
以下问题: