博客

F5 与微软携手 Apache Arrow 推进 OpenTelemetry 第二阶段项目

Laurent Querel 缩略图
洛朗·克雷尔
发布于 2025 年 6 月 9 日

F5 正在与微软合作开展 Apache Arrow (OTAP) 开源 OpenTelemetry 项目的第二阶段。 作为该项目的一部分,OpenTelemetry 数据将使用 Apache Arrow 记录批次从 SDK 消费、处理和导出到代理、收集器和后端。 在第一阶段成功的基础上,遥测数据压缩率得到了显著提高,下一章旨在通过基于 Rust、Arrow 原生的数据处理管道进一步突破 OpenTelemetry 的界限。 

F5 与微软在 OpenTelemetry 与 Apache Arrow 项目第二阶段的合作将开发与 Apache Arrow 生态系统集成的高性能遥测管道,并提供一系列适用于小规模和大规模用途的应用。 我们正在用 Rust 语言创建新的遥测管道库,并旨在通过与现有的 OpenTelemetry Collector 集成来提供此功能。

此次合作有望为遥测系统带来创新的性能增强,这不仅对 OpenTelemetry 来说是一个重要的里程碑,而且对更广泛的 Apache Arrow 和 Rust 生态系统来说也是一个重要的里程碑。 我们对我们的方法充满信心,目前正在积极实施这个新的基于 Rust 的管道,并进行广泛的性能基准测试,以清楚地展示这些进步。  

回顾: 第一阶段成功

OpenTelemetry 与 Apache Arrow 的第一阶段制定了雄心勃勃的目标。 通过在开放遥测协议 (OTLP) 中引入创新,此阶段以前所未有的方式优化了遥测数据传输。 与标准 OTLP 协议相比,压缩率提高了 30%-70%,这是一项了不起的成就,为接下来的工作奠定了基础。

但第一阶段只是冰山一角。 它证明了 OpenTelemetry 和 Apache Arrow 相结合的威力,并为更大的使命奠定了基础:将整个 OpenTelemetry 管道转变为高性能、列式数据处理强大引擎。

第二阶段: 进入 Rust 和 Arrow

在第 2 阶段,F5 和微软将深入研究性能优化,开发由 Rust 和 Apache Arrow 提供支持的完全原生的 OpenTelemetry 管道,目标是为 Golang 收集器构建 Rust 管道。 这将显著提高 CPU 利用率、内存效率、吞吐量和延迟,所有这些都有助于建立更高效的数据处理生态系统。

我们的目标还在于平衡最佳数据压缩、加速数据处理和与现代列式可观测性的有效集成,使该计划有别于主要关注压缩的其他项目(例如 STEF)。 

全力投入 Rust 的决定在技术界引起了兴奋,但也引发了一些争议。 毕竟,OpenTelemetry 的 Collector 项目传统上是使用 Golang 构建的。 那么为什么是 Rust?

Rust 和 Apache Arrow 为何是完美搭档

Rust 和 Apache Arrow 就像数据处理领域最好的朋友。 两种技术以深刻的方式相互补充,使 Rust 成为第二阶段开发的理想选择。 以下仅列举几个原因: 

  • 没有垃圾收集器的内存安全性和性能: Rust 对内存安全的坚定承诺确保了数据管道既强大又安全,最大限度地降低了数据损坏或分段错误等风险。 将其与 Rust 的性能特点(低开销、零成本抽象)相结合,您就可以完美地高效处理 Apache Arrow 所包含的高速、大容量遥测数据。
  • 列式数据处理: Apache Arrow 是零拷贝、面向列的数据处理的事实框架。 它在现代数据湖中被广泛采用,支持 Parquet、Delta Lake 和 Iceberg 等系统。 与 Arrow 的原生集成意味着您可以使用强大的分析引擎(如 Apache DataFusion 和支持 Arrow 的数据湖)无缝高效地交换数据。
  • 零拷贝设计: Apache Arrow 的零拷贝范式与 Rust 对直接内存访问的强调完美契合。 这些技术共同消除了序列化和反序列化的开销,从而可以高效处理大数据流而不会浪费 CPU 周期。
  • 蓬勃发展的生态系统: Apache Arrow 周围的 Rust 生态系统正在蓬勃发展。 通过为第二阶段选择 Rust,F5 和微软利用了这个充满活力的社区,解锁了与强大的库和框架(例如 Apache DataFusion)的集成。 这些连接为新的应用打开了大门,尤其是与用于分析和机器学习的大规模数据湖的集成。 虽然该项目仍处于早期阶段,但我们已经吸引了几家专门从事可观察性数据库的公司的兴趣。

超越性能: 拓展视野

在 Rust 和 Apache Arrow 的领导下,采用 Apache Arrow 的 OpenTelemetry 不仅仅解决了性能指标,还为遥测和数据生态系统的更广泛采用奠定了基础。

想象一下,遥测管道可以无缝嵌入数据湖,提供与面向列的分析平台的直接连接。 这种端到端、零拷贝管道将允许遥测数据从生产系统无缝流向下游系统,从而实现 OpenTelemetry 中以前无法想象的集成。

通过保障可嵌入性、优先考虑严格的内存控制以及启用每核线程运行时支持,第 2 阶段确保这种基于 Rust 的范例不仅能够超越预期,而且还能为开发人员和企业所用。

统一方法: Rust 与 Go 的相遇

尽管 Rust 备受关注,但第二阶段并不意味着抛弃 Golang。 事实上,F5 和微软正在采取谨慎的措施来确保 Go 和 Rust 管道之间的兼容性。 用 Golang 编写的适配器和现有的 OpenTelemetry Collector 组件将继续得到支持和维护。 这确保了互操作性,使组织能够为其工作流程选择最佳的工具集,而不会被锁定在单一语言中。

这种统一的方法符合 OpenTelemetry 致力于发展生态系统而不是破坏生态系统的承诺。 通过将 Rust 和 Go 管道作为互连工作流的一部分进行桥接,此次协作确保了 OpenTelemetry 仍然可供其多样化的用户群访问。

行业认可与贡献

OpenTelemetry 治理委员会已批准第二阶段,认识到探索基于 Rust 的创新同时保持更广泛的 OpenTelemetry 生态系统和谐的重要性。 F5 的贡献,例如“Beaubourg”库,已经为我们提供了坚实的基础。

F5 和微软在这一领域的合作不仅优化了性能,还为遥测领域打开了激动人心的可能性之门。 这项对创新的投资充分说明了 OpenTelemetry 致力于保持开源遥测系统领先地位。

下一步是什么?

对于那些使用 Apache Arrow 跟踪 OpenTelemetry 进展的人来说,第 2 阶段代表着效率、可扩展性和灵活性的飞跃。 通过充分利用 Rust 和 Apache Arrow 的潜力,此次合作有可能重新定义遥测数据的生成、处理和使用方式。

当技术社区等待这一雄心勃勃的阶段的成果时,有一件事是清楚的——Apache Arrow 的 OpenTelemetry 正在帮助塑造分布式可观测系统的未来。

请继续关注有关第二阶段发展的更多见解以及该项目如何为高性能、列式数据的未来铺平道路。 让我们建大一点,并且建得快一点。

F5 和微软的合作体现了开源创新的精神,我们很高兴看到这些努力如何为我们所有人提升 OpenTelemetry。 我们共同努力,不仅采用了现代工具,还重新定义了一切可能。 要了解更多信息,请阅读 Microsoft 博客文章。