F5 は、Apache Arrow (OTAP) を使用したオープンソースの OpenTelemetry プロジェクトの第 2 フェーズで Microsoft と協力しています。 このプロジェクトの一環として、OpenTelemetry データは、Apache Arrow レコード バッチを使用して SDK からエージェント、コレクター、バックエンドに消費、処理、エクスポートされます。 テレメトリデータの圧縮率が劇的に向上したフェーズ 1 の成功を基に、次の章では、Rust ベースの Arrow ネイティブ データ処理パイプラインを使用して、OpenTelemetry の限界をさらに押し広げることを目指します。
F5 と Microsoft は、OpenTelemetry with Apache Arrow プロジェクトのフェーズ 2 で協力し、小規模から大規模までさまざまな用途に対応するapplicationsを備えた、Apache Arrow エコシステムと統合された高性能テレメトリ パイプラインを開発します。 私たちは Rust 言語で新しいテレメトリ パイプライン ライブラリを作成しており、既存の OpenTelemetry Collector との統合を通じてこの機能を提供することを目指しています。
このコラボレーションにより、テレメトリ システムの革新的なパフォーマンス強化が実現され、OpenTelemetry だけでなく、より広範な Apache Arrow および Rust エコシステムにとっても重要なマイルストーンが達成されます。 私たちはこのアプローチに自信を持っており、現在この新しい Rust ベースのパイプラインを積極的に実装し、進歩を明確に示すために広範なパフォーマンス ベンチマークを実施しています。
Apache Arrow を使用した OpenTelemetry のフェーズ 1 は、野心的な目標を掲げて開始されました。 このフェーズでは、OpenTelemetry Protocol (OTLP) に革新を導入することで、テレメトリ データ転送がこれまでにないほど最適化されました。 圧縮率は標準の OTLP プロトコルと比較して 30% ~ 70% 向上し、今後の作業の基礎となる注目すべき成果となりました。
しかし、フェーズ 1 は氷山の一角にすぎませんでした。 これにより、OpenTelemetry と Apache Arrow を組み合わせることの威力が証明され、OpenTelemetry パイプライン全体を高性能な列指向データ処理の強力なツールに変えるという、さらに大きなミッションの基盤が整いました。
フェーズ 2 では、F5 と Microsoft は、Golang コレクター用の Rust パイプラインを構築することを目標に、Rust と Apache Arrow を活用した完全にネイティブな OpenTelemetry パイプラインを開発することで、パフォーマンスの最適化をさらに進めています。 これにより、CPU 使用率、メモリ効率、スループット、レイテンシが劇的に改善され、より効率的なデータ処理エコシステムの実現に貢献します。
私たちの目標は、最適なデータ圧縮、データ処理の高速化、最新の列指向の観測性との効率的な統合のバランスをとることでもあり、この取り組みを、主に圧縮のみに焦点を当てた STEF などの他のプロジェクトとは一線を画しています。
Rust に「全力で取り組む」という決定は、技術コミュニティの間で興奮と多少の論争を巻き起こしました。 結局のところ、OpenTelemetry の Collector プロジェクトは伝統的に Golang を使用して構築されています。 では、なぜ Rust なのでしょうか?
Rust と Apache Arrow は、データ処理の世界では親友のような存在です。 両方のテクノロジーは深く補完し合うため、Rust はフェーズ 2 の開発に最適な選択肢となります。 以下にいくつかの理由を挙げます。
Rust と Apache Arrow を活用した OpenTelemetry with Apache Arrow は、単にパフォーマンス メトリックに取り組むだけでなく、テレメトリとデータ エコシステム全体でのより広範な導入の基盤を整えます。
テレメトリ パイプラインがデータ レイクにシームレスに埋め込まれ、列指向の分析プラットフォームへの直接接続が提供される世界を想像してみてください。 このエンドツーエンドのゼロコピー パイプラインにより、テレメトリ データが本番環境から下流のシステムにシームレスに流れるようになり、OpenTelemetry 内ではこれまで想像もできなかった統合が可能になります。
組み込み可能性を保護し、厳格なメモリ制御を優先し、コアごとのスレッドランタイムサポートを有効にすることで、フェーズ2では、このRustベースのパラダイムが期待を上回るだけでなく、開発者と企業の両方がアクセスし続けることを保証します。
Rust に関する話題があるにもかかわらず、フェーズ 2 は Golang を放棄することを意味するものではありません。 実際、F5 と Microsoft は、Go パイプラインと Rust パイプライン間の互換性を確保するために慎重な措置を講じています。 Golang で記述されたアダプターと既存の OpenTelemetry Collector コンポーネントは引き続きサポートおよびメンテナンスされます。 これにより相互運用性が確保され、組織は単一の言語に縛られることなく、ワークフローに最適なツールセットを選択できるようになります。
この統一的なアプローチは、エコシステムを分裂させるのではなく成長させるという OpenTelemetry の取り組みと一致しています。 このコラボレーションにより、相互接続されたワークフローの一部として Rust と Go のパイプラインをブリッジすることで、多様なユーザー ベースが OpenTelemetry にアクセスし続けることが保証されます。
OpenTelemetry ガバナンス委員会は、より広範な OpenTelemetry エコシステム内での調和を維持しながら Rust ベースのイノベーションを探求することの重要性を認識し、フェーズ 2 を承認しました。 「Beaubourg」ライブラリのような F5 からの貢献は、すでに構築するための強力な基盤を提供しています。
F5 と Microsoft がこの取り組みで協力することで、パフォーマンスを最適化するだけでなく、テレメトリの世界に刺激的な可能性への扉を開くことになります。 このイノベーションへの投資は、オープンソース テレメトリ システムの最先端を維持し続けるという OpenTelemetry の取り組みを物語っています。
Apache Arrow を使用した OpenTelemetry の進捗を追跡している人にとって、フェーズ 2 は効率性、スケーラビリティ、柔軟性の飛躍的な進歩を表しています。 このコラボレーションにより、Rust と Apache Arrow を最大限に活用することで、テレメトリ データの生成、処理、消費の方法を再定義できる可能性があります。
技術コミュニティがこの野心的なフェーズの結果を待つ中、1 つ明らかなことは、Apache Arrow を使用した OpenTelemetry が分散型可観測性システムの将来を形作るのに貢献しているということです。
フェーズ 2 の開発に関する詳細情報と、このプロジェクトが高性能な列指向データの未来への道をどのように切り開いているかについては、引き続き最新情報を入手してください。 大きく、そして早く構築しましょう。
F5 と Microsoft のコラボレーションはオープンソース イノベーションの精神を体現しており、こうした取り組みによって OpenTelemetry が私たち全員にとってどのように向上していくのか、楽しみにしています。 私たちは、単に最新のツールを導入するだけでなく、何が可能かを再定義しています。 詳細については、 Microsoft のブログ投稿をお読みください。