OpenTelemetry メトリクスのリリース候補
Blog posts are not updated after publication. This post is more than a year old, so its content may be outdated, and some links may be invalid. Cross-verify any information before relying on it.
OpenTelemetry のメトリクス機能が、Java、.NET、Python を皮切りにリリース候補として利用可能になりました。 これは、メトリクスの作成、取得、処理、およびその他のやり取りを行う仕様、API、SDK、その他のコンポーネントが、OpenTelemetry メトリクスの完全な機能セットを備え、使用可能な状態になったことを意味します。 これらのリリース候補は、今後数週間のうちに一般提供に昇格される予定です。
1.0メトリクスリリースには、以下が含まれます。
- OpenTelemetry の言語別 API に含まれるメトリクス機能。
メトリクスの作成と操作、およびメタデータと属性の関連付けを行う言語固有のインターフェイスを提供します。
これは以下のような用途に役立ちます。
- エンドユーザーに配布される共有ライブラリの開発者が、エンドユーザーが OpenTelemetry をネイティブに使用してメトリクスを取得できるようにするため。 たとえば、gRPC はこれらの API を使用して、特定のサービスの各 RPC メソッドに対するレイテンシー、スループット、エラーレートのメトリクスを生成します。
- ウェブサービスやクライアントアプリケーションの作成・保守を行う開発者が、カスタムメトリクスの生成や既存メトリクスの操作を行えるようにするため。 たとえば、eコマース企業がこの API を使用して、時間の経過に伴う購入数を追跡できます。
- Java、.NET、Python、JS(来週提供予定)の OpenTelemetry SDK に含まれるメトリクス機能。
API からメトリクスを取得し、一定量の処理を実行します。
その他の言語のメトリクスサポートはまだ開発中です。
これは以下のような用途に役立ちます。
- データベースやメッセージキューなど、他の組織が使用するアプリケーションの開発者が、OTLP(または Prometheus)を通じてメトリクスを公開し、エンドユーザーがこれらのアプリのパフォーマンスを監視できるようにするため。 これらのアプリケーションはオープンソースでもクローズドソースでもかまいません。
- テクノロジー組織内のアプリケーション開発者が、自身の開発者やアプリケーションが依存する共有ライブラリの OpenTelemetry API によって生成されたメトリクスを、アプリケーション内で取得するため。 これらのメトリクスは、OTLP を通じてエクスポートすることも、その他の OpenTelemetry エクスポーターを通じてエクスポートすることもできます。
- メトリクスに対する Collector のサポートには、ホストメトリクスやパッケージ済みアプリケーションなど、さまざまなデータソースからメトリクスを取得する Collector の機能が含まれます。
Collector は、ネイティブの OpenTelemetry Protocol(OTLP)や Prometheus などの OpenMetrics 準拠プロトコルを含む、複数のデータプロトコルを使用するデータソースからメトリクスを受信する機能も提供します。
また、設定駆動のメトリクス処理と、ネイティブの OTLP、Prometheus、およびカスタムエクスポーターを使用して、オブザーバビリティメトリクスをクラウドまたはオンプレミスの任意の監視システムに送信することもサポートされています。
この機能セットは以下のような用途に役立ちます。
- ホスト(Linux VM、Windows VM、Kubernetes など)やパッケージ済みアプリケーション(データベース、メッセージキューなど)からメトリクスを取得したい方。
- OTLP(OpenTelemetry SDK やパッケージ済みアプリケーションなどから)、Prometheus、またはその他の既存ソースからメトリクスを取得したい方。
- これらのソースから取得したメトリクスやメトリクスメタデータを処理・変更したい方。
- メトリクスをあるフォーマットから別のフォーマットに変換したい方。 たとえば、Collector は OTLP と Prometheus のソースが混在する環境からメトリクスを取得し、OTLP(標準の OpenTelemetry セマンティック規約に準拠)、Prometheus、またはその他のエクスポーターを使用して、すべてを単一の送信先に送信できます。
- システム間でメトリクスを効率的にシリアライズおよび転送するための、OpenTelemetry Protocol(OTLP)の完全サポート。
- 仕様のメトリクスセクション。 メトリクスのさまざまな種類、形状、処理方法、およびセマンティック規約を定義しています。 これは主に OpenTelemetry のコントリビューターが使用しますが、メトリクスやメタデータを作成する OpenTelemetry ユーザーにもガイダンスを提供します。
これらの機能はすべて、OpenTelemetry の既存のトレースサポートに追加されるものであり、両方のシグナルタイプは同じメタデータとセマンティック規約を共有しています。 この発表時点で、以下の言語がメトリクスのリリース候補をリリースしています。
- Java
- .NET
- Python
JS の RC リリースは来週の予定であり、今後数か月間にさらに多くの言語がメトリクスのリリース候補をリリースする予定です。 これらの各リリースは、ユーザーからのフィードバックを受けた後、一般提供へと移行します。
はじめに
OpenTelemetry の API、SDK、言語エージェント、Collector を組み合わせてすでに使用している場合は、OpenTelemetry のアーティファクトを最新バージョンに更新することで、リリース候補のメトリクス機能にアクセスできます。 各アーティファクトのメトリクス機能について、公式の OpenTelemetry ドキュメントを現在更新中です。 各アーティファクトに対応する GitHub リポジトリにも、サンプルや補足ドキュメントが追加されています。
OpenTelemetry の次のステップ
分散トレースとメトリクスは、2019年の KubeCon EU で OpenTelemetry を発表した際の、コアとなる約束の2つの側面でした。 メトリクスの一般提供により、当初作ることを目指していた機能が実現しました。 これにより、各コンポーネントの堅牢性と使いやすさのさらなる向上、OpenTelemetry がテレメトリーを取得できるデータソースの拡充(OpenTelemetry API、OTLP、またはその他の手段を通じて)、および新しい機能とシグナルタイプへの注力にフォーカスを移すことができます。
ロギングは現在見えている中で最も注目すべきリリースであり、この取り組みを全速力で進めています。 年間を通じて、ロギングの進捗について多くの情報をお届けする予定です(ログはすでに安定したデータモデルと OTLP サポートを備えています)。 この分野に関心のある方は、毎週の Logging SIG コールにぜひご参加ください。 ロギングの先には、クライアント計装の形式化と実装、eBPF に関する調査などの大きな新プロジェクトがあります。 メトリクスの完成により、さらに多くのシグナルタイプにも取り組む可能性があります。