OpenTelemetryは継続的プロファイリングをテレメトリのコア信号として取り入れたことを発表し、Elasticは継続的プロファイリング・エージェントをOpenTelemetryプロジェクトに寄贈した。
Elastic の寄贈は、OpenTelemetry のエコシステムに、製品グレードのeBPF ベースの継続的プロファイリングエージェントを導入する。このエージェントは最小限のオーバーヘッドでシステム全体の常時プロファイリング機能を提供し、従来のプロファイリングアプローチの多くの限界に対処する。この貢献は、2023年3月のプロファイリングデータモデルOTEP(OpenTelemetry Enhancement Proposal)の合併と、OpenTelemetry内でのプロファイリングの安定した仕様と実装を確立するための継続的な努力に続くものである。主な特徴は以下の通りだ。
- パフォーマンスへの影響は低く、CPU 使用率は約 1% である。
- コード挿入、再コンパイル、サービス再起動が不要
- 幅広いプログラミング言語とランタイムのサポート
- サードパーティライブラリとカーネルオペレーションを監視する能力
エージェントの機能には、最適でないコードパスを特定し、アプリケーションのランタイム動作を包括的に可視化することが含まれる。この貢献は、OpenTelemetryにおいて、トレース、メトリクス、ログと並ぶ4番目のキーシグナルとして、プロファイリングの採用を加速するはずだ。
継続的なプロファイリングを観測可能なシステムに採用することで、従来のプロファイリング手法のいくつかの限界に対処できる。破壊的なサービス再起動の必要性を排除し、コード・インスツルメンテーションに関連するパフォーマンス・オーバーヘッドを削減し、以前はプロファイリングが困難だったサードパーティ・ライブラリの可視性を提供する。
2つ目のアナウンスは、OpenTelemetry にプロファイリングを統合する、より広範囲な取り組みのコンテキストを提供する。それは、プロファイル専門の Special Interest Group (SIG) の結成と、OpenTelemetry フレームワークの中で継続的なプロファイリングの標準化されたアプローチを開発する際に直面したチャレンジについて詳述している。
SIG Profiles グループは、以下のようないくつかの重要な決断を下さなければならなかった。
1.既存のデータモデルをベースにするか、全く新しいものを作るか。
2.ドメイン固有のプロファイリング規約とOpenTelemetryのフレームワーク固有の規約のバランスをどうとるか。
3.基礎として適切な既存のプロファイリング形式を選択する。
OpenTelemetry Collector へのプロファイリングデータの統合は、他のシグナルに似ている。データはインジェストされ、コレクター内部の "pdata "フォーマットに分解され、他のテレメトリ信号と同様に処理される。
継続的なプロファイリングは、従来のパフォーマンスやコスト分析にとどまらず、多くの使用ケースを可能にする。これには、信号相関、インシデント対応、詳細なリソース消費分析などが含まれる。この技術は、CPUスパイク、メモリ問題、ミューテックス競合、ネットワークジッターなどの問題を特定する上で有望である。OpenTelemetry に継続的なプロファイリングを追加することで、エンジニアはリソースを大量に消費するコードを特定しやすくなり、プロプライエタリな APM エージェントへの依存を減らすことでベンダーの中立性を高めることができる。
もう1つの重要なトレンドは、Elastic の提供エージェントのようなプロファイリング ソリューションに eBPF テクノロジを統合することだ。eBPFは、シンボル管理とランタイムの互換性という課題はあるものの、最小限のオーバーヘッドで包括的なシステム全体のプロファイリングを可能にする。
OpenTelemetryを採用するよう組織を説得することについての議論の中で、RedditのユーザーSuperQueは、OpenTelemetryに継続的なプロファイリングがないことが弱点であると強調している。
「率直に言って、私はOtelのメリットを見ていないです。我々は、それをデプロイし、全てのバックエンド・ストレージ(clickhouse)をセットアップするのに何ヶ月も何ヶ月も費やしてきました。しかし、すでに使っているPrometheusのライブラリですでに計測されているものに対して、実際には追加の価値は提供できていないです。実は、Otelよりも継続的なプロファイリングツールに期待しています。Polar SignalsとPyroscopeが生成するデータは、コードのどの部分が遅いのか、より詳細に教えてくれそうです。トレースよりもずっと役に立ちます。
OpenTelemetryコミュニティの継続的なプロファイリングの採用は、業界のトレンドの高まりと一致している。最近、いくつかのスタートアップ企業や主要なオブザーバビリティベンダーがこの領域に参入し、他のテレメトリ信号と相関させた場合のプロファイリング・データの価値を認識している。Polar SignalsのParca AgentやGrafana Alloy、Grafana Agentのような他の継続的プロファイリングエージェントがこの領域で利用可能だ。
YouTubeのOpenObservability Talksチャンネルで公開されているビデオでは、DatadogのFelix Geisendörfer氏とGrafana LabsのRyan Perry氏という専門家が、継続的プロファイリングのOpenTelemetryへの統合について詳しく議論している。彼らは、パフォーマンスとコスト分析ツールから、ログ、メトリクス、トレースと並ぶ重要な可観測性シグナルへのプロファイリングの進化について議論し、プロファイリングの OpenTelemetry Enhancement Proposal (OTEP) のマージについて取り上げている。このマージにより、プロファイリング シグナルが OpenTelemetry 内で実験段階に移行する。
彼らは、"pprof-extended "と名付けられた pprof フォーマットの拡張版を OTel プロファイリングデータの標準として採用するという決定について説明している。さらに、性能要件とOTelの既存の慣例とのバランスをとる上での課題を強調し、複数のプロファイリング・フォーマットをサポートする可能性について議論している。また、様々なプログラミング言語やランタイム向けのリファレンス実装の開発についても触れている。