
可观测性和监控的融合
|
87
监控实践是众所周知的,并且在围绕特定工具形成的专家社区之外被广泛理解。在整个
软件行业中,存在任何在生产环境中操作过软件的人都可能同意的监控最佳实践。
例如,一个被广泛接受的监控核心原则是人类不需要整天坐着看图表。当出现问题时,
系统应主动通知其用户。通过这种方式,监控系统是被动的。它们通过提醒人们正在发
生问题来对已知的故障状态做出反应。
监控系统和指标已经发展为针对该工作进行优化。它们会自动报告已知的故障情况是否
正在发生或即将发生。它们针对报告已知故障模式的未知条件进行了优化(换句话说,
它们旨在检测已知的未知)。
优化监控系统以查找已知的未知数据,意味着它最适合了解系统状态,与应用程序代码
相比,系统状态的变化频率更低且更可预测。我们所说的系统是指你的基础架构、运行
时或计数器,这些计数器可以帮助你了解何时即将遇到操作约束。
如第
1
章所述,创建指标和监控是为了检查硬件级别的性能。随着时间的推移,它们已
经适应了更广泛的基础设施和系统级问题。本书的大多数在科技公司工作的读者都应该
认识到,底层系统对你的业务来说并不重要。归根结底,对你的业务而言,重要的是你
编写的应用程序在客户手中的表现如何。你的企业担心这些底层系统的唯一原因是它们
可能会对应用程序性能产生负面影响。
例如,你想知道目前是不是
CPU
利用率飙高了,因为那样的话就说明现有的高延迟问
题不是由于自己的代码原因引发的。或者,如果你发现整个队列的物理内存接近耗尽,
那么这表明即将发生的灾难可能源自你的代码。将系统约束与应用程序性能相关联很重 ...