第 5 章 自动生成数据观测 自动生成数据观测结果
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
上一章介绍了底层日志记录所面临的挑战,接下来我们的重点将转移到探索其他方法,以提高数据可观察性,并通过自动化简化其采用过程。 在本章中,我将介绍捕获和分析数据观察结果的新可能性和策略,为建立更全面的可观察性框架铺平道路。
抽象策略
上一章介绍了如何为使用底层应用程序接口处理数据的应用程序添加数据可观测性。即使是简单的流程,这种方法也会变得乏味,因此需要最终用户--数据工程师或从业人员来完成这项任务。
大多数工作,如第 4 章中介绍的代码指令,都可以抽象为一个更高级别的框架,只要投入足够的时间来定义它,就能减少工作量。与其他最佳实践一样,缩短上市时间的压力也会导致跳过数据观测的生成,即使工程师知道他们将部署的是他们几乎没有信心的东西。
为避免落入这一陷阱,我们可以将各种最佳实践策略或技术自动化--这是其他领域的经典优化做法,例如应用程序可观察性,其中大多数常见观察结果都是默认生成的,如网络服务的请求数、计算引擎的内存使用量、应用程序的版本(参见 META-INF)。自动化通常灵活性较低,因为它处理的是常见任务。不过,您可以通过使用底层应用程序接口将这些任务结合起来,以满足您的特定需求。
例如,这些技术在应用可观测性中得到了大量应用,它们在应用可观测性中的应用是自然而然的。Datadog、Splunk 和 OpenTracing 等公司在其开发的各种代理中都使用了这些技术。
第一种策略--使用事件监听器--利用你用于数据工作的工具可能触发的事件。
事件监听器
根据,您用来转换或处理数据的框架和工具可能会遇到一些,如 Apache Spark 等,它们已经实现了一些概念,允许对其内部行为做出反应。 当某些事件发生时,该技术可以让您注册监听器来拦截事件,并根据事件传达的信息采取行动。了解哪些行为可以被拦截后,您就能以更加自动化、系统化和标准的方式创建有关这些行为的可见性。
在数据可观测性方面,与第 2 章所述内部系统模型相关的事件尤其值得关注。这些事件通常可用于读写数据源和运行转换。
用于利用这些事件的组件通常被命名为监听器或处理程序。您可以在事件总线上创建和注册它们,事件总线是传播触发事件的系统。
有些技术可以一次性触发包含所有可用信息的事件,或者足够多的信息,以至于您可以在一行日志或操作中几乎完全生成模型,例如 Apache Spark(第 6 章将介绍)。
在可能的情况下,基于事件的代理非常强大,因为你可以在框架层面或工具服务器中自动集成它们,发布大部分信息,而无需花费太多时间。
当然,这一概念只适用于创建标准化信息。任何定制,如度量、算法或描述,都必须通过应用或使用来引入。其他需要参与的观察类型是与期望相关的规则。它们在保持效率和性能的同时,几乎没有标准化的余地。通用规则适用于所有情况,但过于模糊,无法捕捉自定义或角落情况。应用是不同的。
日志作为事件是事件的一种特殊情况,当你使用的框架、应用程序或系统无法提供你所需的灵活性来创建数据可观察性目标时,将其作为一种后备方案来考虑是非常有趣的。这些系统被称为黑盒子,包括一些传统系统。
不过,如果这些系统是封闭的,它们很可能会生成一些日志,如执行的 SQL 或应用的模块。作为应用程序可观察性的一部分,这些日志会产生一些系统可见性。 不过,这些日志最终可能包含足够的信息,可以通过在系统外部打补丁的方式,脱离上下文重新创建部分数据可观察性,就像符合 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access