第 2 章 数据可观察性的组成部分 数据可观测性的组成部分
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
正如第 1 章所介绍的,数据可观察性是(IT)可观察性与应用或分析等其他领域交叉的一个领域。 在本章中,我们将介绍如何将图 2-1 所示的数据可观察性及其交互作用添加到系统中。
图 2-1. 与数据可观测区域相交的可观测区域
正如第 1 章所讨论的,数据可观测性为观测者提供了更广泛的观测范围,通过结合系统的所有领域来解释系统的内部状态。然而,如果不遵守一些预防措施,这种组合本身也会成为一种挑战。本章将让您更深入地了解什么是观测以及观测应包含哪些内容。
本章介绍了数据可观察性的三个基本组成部分:可访问观察结果的渠道、描述观察结果结构的观察模型,以及为数据系统提供主动功能的预期。
数据可观察性信息渠道
数据可观察性的第一个组成部分是向观察者传递观察结果的渠道。有三种渠道:日志、跟踪和度量。这些渠道是所有可观察性领域的共同渠道,与数据可观察性没有严格的联系。
下文将对可观察性的三个主要渠道逐一进行定义。您可能已经熟悉这些渠道,但如果不熟悉,也有数百本书籍和博客会深入探讨这些渠道的定义。如果您想了解更多,我推荐您阅读《分布式系统可观察性》一书、1这本书用了整整一章来定义这些通道。我还推荐《可观察性工程》(Observability Engineering)的第二部分、2以及Cloud Observability in Action。3
日志
日志在任何系统中都很常见。 它们通常是文件(称为日志文件)中的文本行,代表应用程序在执行过程中发生的事件。
因此,日志是 IT 系统产生的最常见的观察渠道。日志有多种形式(如自由文本行、JSON),旨在封装事件信息。日志的每一行(通常日志是一行行的数据流)都是日志记录行为的结果。
日志记录是 IT 领域已有几十年历史的最佳实践,尤其是在基础设施、应用程序和安全领域。日志被用于调试和优化 IT 系统或流程。甚至还为日志制定了标准,如 Syslog,这些标准规定了日志结构,并允许异构基础设施由中央系统控制。
虽然日志对于捕捉系统行为信息至关重要,但很难利用日志来重现多步骤流程。这是因为日志包含系统内的所有活动,而一个流程的日志很可能与其他并发流程交错在一起,或分散在多个系统中(如分布式系统、服务网格)。
痕迹
出色的《可观察性工程》一书4将跟踪介绍为 "一种基本的软件调试技术,通过记录程序执行过程中的各种信息来诊断问题"。
跟踪可以看作是日志的一种特殊情况--流程执行步骤的重新连接。由于跟踪代表了同一进程中所有事件之间的联系,因此可以从日志中高效地推导出整个上下文。这一概念已扩展到满足分布式系统的需求,通常称为分布式跟踪,其中的跟踪事件(又称跨度),如调用网络服务、访问文件或查询数据库,在不同的系统中产生,但作为一个全局跟踪(通常是一个 ID)相互连接。
跟踪及其跨度是跟踪跨服务和服务器操作的有效方法,因为服务器、服务和事件时间戳等信息都会传达。因此,观察者可以在给定的时间内轻松浏览服务器上的服务日志,分析他们需要产生观察结果的特定事件的日志。
数据脉络是一种追踪形式
该元素表示一般性说明。
数据和分析中的另一种追踪形式是数据脉络,将在下一节中介绍。 ...