OpenTelemetry protocol with Apache Arrow
OpenTelemetry 协议结合 Apache Arrow:第二阶段公告
[中文正文内容]
The OpenTelemetry LogoOpenTelemetry
我们很高兴地宣布与 Apache Arrow 项目(OTel-Arrow)结合的下一阶段的 OpenTelemetry 协议。几年前,我们启动了这个项目,目标是在 OpenTelemetry 数据和 Apache Arrow 生态系统之间建立桥梁。 Apache Arrow 是一个框架,专为面向列的数据生产者和消费者之间零拷贝交换结构化数据而设计。
我们相信,通过 Apache Arrow 使外部系统能够访问 OpenTelemetry 数据将带来强大的集成,并有可能出现新的遥测系统和应用程序。对于大量的遥测数据流,我们知道面向列的数据处理效率更高,数据压缩和性能也得到了提高。
我们选择在 Rust 中研究该项目的这个阶段。在 OpenTelemetry Governance Committee 的帮助下,我们定义了一个项目范围,其中涉及研究基于 Rust 的 OpenTelemtry 管道的潜力,而无需“成为”一个 Collector。我们将研究 Rust 管道的性能,以及如何成功地将我们的工作与 OpenTelemetry Collector 基于 Golang 的生态系统集成。
该项目旨在回答我们最初的假设。我们正在调查如果从 SDK 开始,并贯穿整个管道,使用端到端的零拷贝、面向列的范例会发生什么以及可能发生什么。
我们不禁注意到:围绕 Apache Arrow 的 Rust 生态系统庞大且充满活力,我们认为如果不探索这个领域将会错失良机。我们特别感兴趣的是将 Apache DataFusion 库与 OpenTelemetry 管道连接起来,并且我们相信 OpenTelemetry 用户将受益于与其数据湖的更直接集成。
我们有动力在 Rust 中构建端到端的 OTAP 管道,其中遥测数据在生成时被放入 Arrow 记录批处理中。在探索这个机会时,OTel-Arrow 项目希望与 OpenTelemetry-Rust SDK 紧密结合。我们有兴趣通过严格控制内存以及支持每个核心线程的运行时,使 OTAP 管道能够安全地嵌入。
在该项目的第一阶段,我们通过 Golang 适配器库以及 OpenTelemetry Collector Contrib 存储库中的一对匹配的 Exporter 和 Receiver 组件开发了该协议。我们将继续维护这些组件,确保 Go 和 Rust 管道之间没有障碍,并且我们将继续履行这一承诺。我们将确保可以从 OpenTelemetry Collector 执行 OTAP 管道。我们还希望使用 Rust 编写的 OTAP 管道可以访问 Golang Collector 组件。
为了启动该项目的第二阶段,F5 的 Laurent Quérel 贡献了他最初的 OTel-Arrow 原型背后的工作,一个基于 Rust 的管道框架,该框架以 OpenTelemetry Collector 为模型。 Greptime 的 Lei Huang 贡献了 一个用于将指标信号从 OTAP 转换为 OTLP 的 Rust 实现。
了解更多
新成立的 OTel-Arrow SIG 在 OpenTelemetry 日历上有一个 会议时段。 到时见!
作者:Joshua MacDonald (Microsoft), Laurent Quérel (F5) | 2025年5月12日,星期一