
2026/03/27 1:14
**OpenTelemetry プロファイル、パブリックアルファ版を公開** * OpenTelemetry Profiles が初のパブリック・アルファとしてコミュニティで利用可能になりました。 * 新バージョンではプロファイリングメトリクスのサポートが追加され、開発者は OpenTelemetry エコシステム内で直接パフォーマンスデータを取得・解析できるようになります。 * 主な機能は次のとおりです: * プロファイルデータを記録するための簡素化された API * 既存の OpenTelemetry コレクターやエクスポーターとの互換性 * リアルタイム洞察を提供する観測ツールの強化 開発者は公式ドキュメントに従い、OpenTelemetry Profiles の実験を本日から開始し、継続的な開発へ貢献できます。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
要約
OpenTelemetry Profiles がパブリック Alpha に入り、サンプリング・トレーシング・ランタイム固有のデータを単一の効率的なワイヤ/メモリ表現に統合する OTLP Profiles フォーマットを提供します。フォーマットには以下が含まれます:
- 共通エンティティ用の辞書テーブルを備えた重複除去されたスタックトレース
- タイムスタンプ付きイベントデータ、リソース属性、文字列辞書、および
/trace_id
を介したクロスシグナル相関span_id - インフラ情報を効率的に共有する更新済み OTLP Resource モデル
ネイティブトランスレータは、馴染みのある pprof フォーマットとの間でロスレスな双方向変換を可能にし、コンフォーマンスチェッカーでサポートされます。リリースは Elastic の eBPF Profiling Agent(現在は OpenTelemetry Collector 受信器)をベースにしており、公式コレクタ配布物と共に提供され、Go、Node.js V8 (ARM64)、BEAM、.NET 9/10、および強化された Ruby シンボリゼーションをサポートします。Profiles は受信器・プロセッサ・変換ルールを通じて OTel エコシステムに統合されています。
Elastic はまた devfiler をオープンソース化しました。これは eBPF プロファイラのバックエンドを開発と実験用に再実装したデスクトップアプリ(本番環境向けではありません)。コミュニティ参加が奨励されており、ツールで OTLP Profiles をエクスポート/受信オプションとして追加し、Collector v0.148+ でエージェントをテストし、ドキュメントをレビューし、GitHub に課題やプルリクエストを提出してください。
今後の作業には、eBPF エージェント間でデータ共有、シンボリゼーション API とストレージ形式の標準化、CPU 外イベントのクロスシグナル相関、プロセス/スレッドコンテキスト処理(OTEPs を介して)の拡張、および Beta から GA リリースへの進展が含まれます。
ユーザーおよび企業にとって、この単一プロファイリングフォーマットを採用することで、さまざまなランタイムでの観測性が向上し、シンボリゼーションやイベント相関のためのツールが豊富になり、本番環境でのパフォーマンスデバッグと監視が加速します。
本文
OpenTelemetryがProfilesを初めて導入したときから、勢いは止まるところを知らず、トレース・メトリクス・ログに並ぶ「継続的プロダクションプロファイリング」の統一業界標準構築へと進化し続けています。今やProfiling SIGはProfilesシグナルが正式にパブリックα版に入り、より広いコミュニティでの利用・フィードバックを歓迎する姿勢を表明しました。
すべての環境で実現するプロダクションプロファイリング
低オーバーヘッドで継続的にパフォーマンスプロファイルを取得し続ける手法は、数十年にわたり活用されてきました。事故対応やソフトウェア高速化によるユーザー体験向上、同じ作業をより少ないリソースで実行することで計算コスト削減など、多岐に渡るメリットがあります。しかし、JFRやpprofといった人気フォーマットが存在しても、継続的プロファイリングのための共通フレームワーク・プロトコルは欠如していました。
OpenTelemetry Profilesでは、業界全体で採用できる「本物のベンダーニュートラル」なプロダクションプロファイリング標準を提示します。主な構成要素は次のとおりです。
- 既存フォーマット(pprofなど)に互換性のある統一データ表現
- 新しいeBPFベースの参照実装
- OpenTelemetryエコシステムへの有機的統合(例:OTel Collectorとの連携)
αリリースでは、これらすべてが大幅に改善されています。以下で取り組んだ内容を掘り下げます。
データ表現の標準化
統一プロファイリングフォーマットを作ることは、大きな挑戦です。サンプリング vs. トレーシング、ネイティブ vs. インタープリテッドランタイム、ワイヤ/メモリ効率 vs. データ可読性など、多くの要件を調整する必要がありました。
結果として生まれた Profiles Alpha フォーマット は、次のようにバランスの取れた機能セットでプロファイリングデータを効率的に記録します。
- スタック表現は重複排除されており、ユニークなコールスタックが一度だけ保存されます。これにより多様なデータをエンコードしやすくなります。
- よく使われるエンティティの辞書テーブルにより、データ正規化が効率的に行えます。
- 主に集計データ向けですが、タイムスタンプ付きイベント(例:個別オフCPUイベント)の記録もサポートします。
- リソース属性で追加情報を付与し、文字列辞書サポートにより(約40 %小さい)ログ・メトリクス・トレースと同じリソースへプロファイルデータを結びつけられます。
- プロファイルサンプルは
/trace_id
属性でさらに紐付け可能です。これによりシグナル間の相関が容易になります。span_id
語義規約(Semantic Conventions)は、最も頻繁に使われるプロファイリング固有属性を定義します。pprof フォーマットから着想を得て、pprof メンテナと協力して開発された OTLP Profiles は、OpenTelemetry エコシステム全体の幅広い要件を満たす独立した標準へ進化しました。元の ppuff 形式のデータは情報損失なく OTLP Profiles と相互変換可能であり、新しいネイティブトランスレータが無理なく統合できます。
データ品質と採用容易性を確保するため、コンフォーマンスチェッカーもリリースします。これにより、エクスポートされたプロファイルが OpenTelemetry Profiles の技術仕様・語義規約に準拠しているか検証できます。
eBPF プロファイリングエージェントで実現するシームレスな洞察
Elastic が自身の eBPF プロファイリングエージェントを OpenTelemetry に寄贈し、OTel Collector と統合したことで、Linux 上の低オーバーヘッド全体連続プロファイリングがすべての OpenTelemetry ユーザーに提供されるようになりました。αリリースは次の重要改善を含みます。
- eBPF エージェントは OTLP Collector のレシーバとして動作し、メトリクスや Kubernetes メタデータ用の既存処理パイプラインを利用します。
- 公式 Collector ディストリビューションとして配布されます。
- Go 実行ファイルの自動オンターゲットシンボライズ
- Node.js V8 用 ARM64 サポート
- BEAM(Erlang/Elixir)への初期サポート
- .NET 9 および 10 のサポート
- Ruby のアンワインディングとシンボライズの修正・改善
OTel エコシステムにおける Profiles
OpenTelemetry は多くの相互連携部品を備えた総合エコシステムです。Profiles という新しいシグナルが普遍的に統合され、すべてのシグナルが互いに恩恵を受けられるようにすることが重要です。αリリースは OTel 宇宙全体で次の改善をもたらします。
- OTel Collector は特定フォーマットで Profiles データを受信したり、インフラ情報でプロファイルを補完できるようになりました。
- pprof receiver により ppuff 形式ファイルからプロファイルを取得できます。
- k8sattributesprocessor が Kubernetes メタデータでプロファイルを拡張します。
- OTTL はプロファイルを変換・フィルタリングするカスタムルール構築をサポートします。
- OTLP Resource モデル が情報共有の効率化に更新され、Collector も Profiles シグナルに対してこの最適化を透明にサポートします。
はじめてみる
OpenTelemetry プロファイルについてさらに知りたい場合は、OpenTelemetry ドキュメント内の profiles concepts ページをご覧ください。最も簡単な導入方法は OTLP Profiles をサポートするバックエンドと組み合わせた OpenTelemetry eBPF プロファイラーを使用することです。プロダクションレディなバックエンドはまだありませんが、複数のベンダーが実装に取り組んでいます。
Elastic は devfiler というデスクトップアプリケーションをオープンソース化しました。このアプリは eBPF プロファイラーのバックエンド部分(コレクション・データストレージ・シンボライズ・UI)を再実装しています。devfiler は本格的なプロダクションバックエンドではなく、実際に使用すべきではありません。詳細は eBPF プロファイラーリポジトリの指示に従ってください。
ご協力いただいた皆様へ…
このようなプロジェクトには多くの人が関わります。ご協力いただいた方々に感謝します:
- Alexey Alexandrov(Google)
- Ivo Anjo(Datadog)
- Frederic Branczyk(Polar Signals)
- Roger Coll(Elastic)
- Dmitry Filimonov(Grafana Labs)
- Felix Geisendörfer(Datadog)
- Nayef Ghattas(Datadog)
- Jonathan Halliday(Red Hat)
- Dale Hamel(Shopify)
- Joel Höner(Zymtrace)
- Christos Kalkanis(Elastic)
- Florian Lehner(Elastic)
- Damien Mathieu(Elastic)
- Greg Mefford(Adobe)
- Tigran Najaryan(Splunk)
- Tommy Reilly(Polar Signals)
- Tim Rühsen(Zymtrace)
- Josh Suereth(Google)
- Timo Teräs(Elastic)
- Brennan Vincent(Polar Signals)
今後の展望
プロファイリングツールや製品を構築しているチームには、OpenTelemetry Profiles の利用を始めていただきたいと考えています。参加方法は次の通りです。
- ツール(例:async‑profiler)に OTel Profiles をエクスポートまたは受信オプションとして追加。
- eBPF エージェントおよび OTLP Collector(v0.148.0 以降)の Profiles サポートをテストし、問題報告や PR の送付。
- シグナルドキュメントをレビューし、改善提案を行う。
α状態であるため、本番環境のクリティカルなワークロードには使用しないでください。OpenTelemetry での Alpha 成熟度定義をご参照ください。
今後予定している作業
- eBPF ベースエージェント(例:OBI と Profiling Agent)間で情報共有を進め、相関性を高める継続的取り組み。
- シンボライズ API の標準化、ストレージフォーマットの統一、および参照実装の公開。
- SDK コードと eBPF エージェント間でランタイム情報を共有し、シグナル間相関(例:99 % ラティンシー時にトレースのオフCPUイベントは何か)を可能にする。
- OTEPs でプロセスコンテキストとスレッドコンテキストの共有が進められています。
フィードバックをぜひお寄せください! OTLP または Profiling SIG のリポジトリに GitHub Issue を立てていただければ、Beta・GA リリースへの道筋づくりにご協力いただけます。