
51
第 5 章
结构化事件——可观测性的构建块
本章讲解可观测性的构建块(或者说构成要素):结构化事件。可观测性能够衡量我们对
系统的熟悉度,反映我们对各种新奇或异常系统状态的理解程度。为此,观测者必须能够
在不参与或者不知道的状态下,提前了解或预知可能的任何问题的答案。因此技术上首先
必须满足几个前提。
全书重点讲解可观测性的许多必不可少的技术前提。本章开头讲解遥测(
telemetry
)的相关
知识,帮助理解和解释系统状态。要想解决任何关于遥测的各种细节叠加的问题,需要有
对所有维度切分处理数据的能力,也需要遥测所有维度,包括最细粒度的及最底层逻辑层
面的数据。从可观测性的角度来讲,这意味着需要按服务或者请求的级别来收集遥测数据。
老式的指标体系需要客户定义指标后,才可以提出新问题并收集新的遥测数据来回答
它。在指标的世界里,获取所有可能的问题答案就需要收集和存储所有可能的指标,但
这一点几乎是不可能的,而且即便收集了所有指标,成本也非常昂贵。进一步讲,指标
仅是在特定时间内聚合的测量值,并没有保留事件的上下文。仅从数据聚合的视角,也
无法对当前已有的数据集提出新问题或者寻找新的异常点。
有了可观测性,便可以在任意时间针对遥测数据提出新问题,而不必先预测可能的问
题。可观测的系统能赋能用户反复探究系统方方面面的能力,包含从每个单独的请求一
直到高级聚合的性能问题。
达到以上能力的技术条件需要符合可观测性的数据格式:任意宽的结构化事件。这些事
件的收集并非可选,也不是实施细节,但却是构成任意宽的视角的必备条件。 ...