可观测性工程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 关于软件可观测性的错误描述

在继续之前,我们需要定位“可观测性”的另一个定义,这个定义正在被一部分软件即服务(SaaS)开发者工具供应商广泛推广。这些供应商坚持认为“可观测性”没有任何特殊含义——它只是“遥测”(telemetry)的另一个同义词,与“监控”没有区别。这个定义的支持者将可观测性降级为运维软件的另一个通用术语。你肯定会听到这种解释,即将可观测性解释为今天他们已经在做的事情的“三大支柱”:指标(metrics)、日志(log)和链路(trace)[2]

很难判断哪个定义更糟糕:它是冗余的(为什么我们需要发明“遥测”的另一个同义词?)或者它的认知是混乱的(为什么要汇编一个由一种数据类型、一种反数据类型、一堆字符串和一种按时间顺序可视化事物的方式组成的列表)。无论如何,当你意识到该定义的支持者在出售工具以及基于现有指标、日志和链路工具收集和存储数据的思维方式时,该定义的逻辑缺陷就变得明显了。这一定义的支持者的业务模型限制了他们对未来可能性的思考。

公平地说,我们——本书的作者——也是可观测性产品的供应商。然而,本书并不是为了推销我们的工具而编写的。我们写这本书的目的是解释我们如何以及为什么将可观测性的原始概念应用于管理现代软件系统。无论选择什么工具,你都可以应用本书中的概念来练习构建具有可观测性的生产软件系统。可观测性不是通过将不同的工具与市场营销结合在一起实现的。你不必采用一种特定的工具来获得软件系统中的可观测性。相反,我们认为可观测性要求我们思考如何收集有效调试所需的数据。我们相信,作为一个行业,是时候发展我们用来管理现代软件系统的实践了。