摘要:对于那些在跨云集群中使用容器化应用程序的人来说,这并不令人惊讶——这些类型的系统会发出如此多的数据。对您而言,这意味着随着您处理越来越多的指标、日志、跟踪和事件,理解生产环境中发生的事情变得越来越困难。
流水线提供灵活的遥测路由功能,标准化格式,并优化存储内容,从而经济高效地获得洞察。
译自 The Case for Telemetry Pipelines,作者 Paige Cruz。
在去年的调查中,可观测性和安全专业人员报告称,仅日志一项就同比增长了250%。
对于那些在跨云集群中使用容器化应用程序的人来说,这并不令人惊讶——这些类型的系统会发出如此多的数据。对您而言,这意味着随着您处理越来越多的指标、日志、跟踪和事件,理解生产环境中发生的事情变得越来越困难。
遥测流水线可以确保您掌握相关数据。扩展可观测性不仅仅是收集更多数据;而是要确保数据有用且具有成本效益。
如果没有遥测流水线,您将面临脆弱的依赖关系、导致数据丢失的摄取失败、不一致的第三方遥测和不断飙升的成本。流水线使您可以灵活地将遥测数据路由到所需位置,缓冲以提高可靠性,标准化格式,并优化存储内容,以便您可以获得所需的见解,而无需额外负担。
下面是我尝试向您介绍您需要了解的关于遥测流水线的内容:它们是什么,为什么重要以及它们如何解决常见的可观测性挑战。
起初,我认为“遥测流水线”只是另一个时髦的流行语。毕竟,在该术语出现之前,我们多年来一直在从我们的应用程序获取日志和指标并将其输入监控系统。那么它究竟是什么呢?
遥测流水线是一个收集、处理和路由来自各种来源的遥测数据(日志、指标和跟踪)到正确的监控和分析工具的系统。遥测流水线统一了数据处理,无需为不同的信号管理单独的代理或收集器,从而使可观测性更高效且更具可扩展性。
在进一步深入探讨之前,让我们回顾一下“遥测”的含义。
其核心是,遥测是从远程系统自动收集和传输数据以进行监控和分析。您随时随地都能看到遥测的实际应用——例如,健身追踪器监控您的心率并将数据发送到应用程序。在软件中,遥测是指应用程序、基础设施和云服务生成的日志、指标、跟踪和事件,这些事件被发送到监控和可观测性系统。
当今的云原生系统会生成持续不断的遥测数据流。微服务、容器、集群和无服务器函数都会以不同的格式、不同的速率和独特的处理需求发出事件、日志、指标和跟踪。这些数据通常需要被过滤、丰富并路由到多个监控、警报和分析工具。手动管理或使用碎片化的解决方案很快就会变得不可持续。
这就是遥测流水线发挥作用的地方。
过去,您必须运行不同的组件来收集每种信号类型——日志一个,指标另一个,跟踪又一个。遥测流水线通过在一个二进制文件中处理所有这些数据类型来简化事情。您仍然可以为日志、指标和跟踪运行单独的流水线。但是,与其学习三种不同的技术,不如对所有这些都使用相同的遥测流水线。因此,一旦您学习了如何配置和部署它,该知识就可以继续使用,从而使事情变得容易得多。
遥测流水线主要执行三项操作:
收集来自任何地方的数据——您的应用程序、数据库、云服务或您正在运行的任何其他内容。它可以摄取数据的方式越多越好。可以将其视为一种通用的接收器,它可以理解所有人的语言。处理数据,方法是清理数据、添加上下文、过滤噪声和屏蔽敏感位。这是原始数据变得真正有用的地方。路由数据,将所有内容传递到需要去的地方,无论是分析工具、长期存储、警报系统还是您的团队需要的任何其他地方。其核心是,遥测流水线是关于将正确的数据以正确的格式传递到正确的位置。这很强大,但在实践中它能实现什么呢?
将遥测数据直接发送给供应商看起来很简单,直到您需要切换工具、控制成本或以不同的方式路由数据。如果没有遥测流水线,您要么被锁定在单个供应商的生态系统中,要么管理一系列并不总是能很好地协同工作的代理和收集器。
遥测流水线充当中间件层,使您能够在供应商之间迁移而无需更改应用程序的检测。您可以通过配置添加或删除目标,并将遥测数据路由到多个后端,以便不同的团队可以使用适合其需求的工具。它还可以动态转换数据格式,确保跨可观测性平台的兼容性,而无需修改应用程序代码。
遥测数据需要可靠,尤其是在事故期间,但直接摄取可能会引入故障点,无论是网络中断、速率限制还是临时中断。遥测流水线通过使用能够处理流量峰值的队列缓冲遥测数据来增加弹性,重试失败的交付以防止数据丢失,并启用本地可观测性工具以实现冗余。这确保即使端点暂时不可访问,您仍然可以访问关键数据以了解您的系统,尤其是在您最需要的时候。
如今的应用程序不仅仅依赖于您自己的代码。它们从第三方服务中引入库,运行在托管云平台上,并与具有其自身格式和详细程度的遗留系统集成。由于您无法始终控制此遥测数据的生成方式,因此理解它可能是一个挑战。
遥测流水线标准化来自各个来源的数据,用缺失的元数据丰富它并过滤掉噪声,以便只有最相关的信号保留下来。您无需再处理支离破碎、不一致的遥测数据,而是获得一个易于使用的干净、结构化的数据集,无论它来自哪里。
只有在需要时拥有正确的数据,可观测性才有用。然而,当成本开始螺旋上升时,组织往往会过度纠正,限制收集的内容,并使开发人员不愿添加必要的检测。问题不仅仅是成本;而是失去了关键的可见性。
遥测流水线使您可以控制数据的数量和形状,因此您只需为真正有价值的遥测数据付费,而不仅仅是默认情况下发出的任何数据。通过过滤掉噪声、减少高基数指标和智能地采样跟踪,您可以获得所需的见解,同时减少对您没有帮助的数据。无需担心成本限制,您可以专注于正确地检测您的代码,因为您的流水线确保始终可以使用最相关的数据。
可观测性不仅仅是技术问题;它是对系统可靠性和可诊断性的业务投资。遥测流水线确保这项投资为您服务——而不是与您对抗——通过使遥测数据更灵活、更具弹性和更有价值。有了正确的基础,下一步就是了解它如何帮助团队解决现实世界中的可观测性挑战。
现在该怎么办?下一步是将您的知识付诸实践。无论您是想减少供应商锁定、提高数据质量还是更好地控制成本,遥测流水线都不必是孤注一掷的努力。您可以从小处着手,并随着应用程序一起发展,每次迭代都能获得更大的灵活性和洞察力。
如果您正在考虑实施遥测流水线,一个很好的第一步是与您在开发、运营和安全方面的工程师同事交谈。寻找共同的摩擦点——也许调试由于日志不一致而减慢速度,或者也许监控成本正在上升,而对实际有用的内容缺乏清晰的可见性。一旦确定了共同的痛点,就从一种遥测类型(如日志)开始,然后在此基础上构建。如果您渴望开始并想在本地进行实验,则此云原生遥测流水线研讨会是一个很好的实践教程。
来源:小木科学