
22
|
第
1
章
将来可能使用。可观测性工具是专门为查询高基数、高维数据而设计的。
因此,调试时你可以以任意方式查询事件数据。有了可观测性,你可以通过探索数据来
迭代调查你关心的条件,看看它能揭示系统状态的什么信息。你问一个不需要提前预
测的问题就可以找到答案或线索,这个线索会引导你问出下一个问题,下一个,再下一
个。你一遍又一遍地重复这个模式,直到你如大海捞针一般找到你要找的那根“针”。
可观测系统的一个关键功能是能够通过开放式的方式探索系统。
一个系统的可探索性是由你提出任何问题并检测其相应内部状态的能力来衡量的。可探
索性意味着你可以迭代地研究并最终理解系统所进入的任何状态
—
即使你以前从未
见过那种状态
—
而不需要提前预测那些状态可能是什么。同样,可观测性意味着你可
以理解和解释系统可能进入的任何状态
—
无论它多么新奇或奇怪
—
而无须交付新
代码。
监控之所以能持续这么长时间运作良好,是因为系统往往足够简单,工程师可以准确地
推断出他们可能需要在哪里寻找问题,以及这些问题可能如何呈现。例如,连接点是相
对简单的,当套接字填满时,
CPU
将超载,解决方案是通过扩展应用程序节点实例或调
优数据库等增加更多容量。总的来说,工程师可以预测大多数可能的故障状态,并在应
用程序投入生产后通过艰难的方式发现其余的故障。
然而,监控创造了一种完全被动的系统管理方法。你可以捕捉到你已预测和知道要检测
的故障情况。如果你知道它会发生,那么你就会检测它。对于你不知道要查看的每种
情况,你必须先看到它,处理这个令你不悦的意外情况,尽你所能地调查它,你可能会 ...