このドキュメントでは、otlphttp エクスポータと OpenTelemetry OTLP プロトコルを実装する Telemetry(OTLP)API、telemetry.googleapis.com で OpenTelemetry Collector を使用する方法について説明します。otlphttp エクスポータと Telemetry API を組み合わせることで、OTLP 指標を Cloud Monitoring に取り込むことができます。
OTLP エンドポイントは、http/proto、http/json、grpc などのすべての OTLP プロトコルをサポートしています。詳細については、プロトコルのサポートをご覧ください。
SDK を使用するアプリケーションから Telemetry API に指標を直接送信することもできます。詳細については、SDK を使用してアプリケーションから指標を送信するをご覧ください。
Google Kubernetes Engine を使用している場合は、Telemetry API を使用する OpenTelemetry Collector を手動でデプロイして構成する代わりに、GKE 用のマネージド OpenTelemetry を使用できます。
Prometheus 指標の OTLP は、OpenTelemetry Collector バージョン 0.140.0 以降を使用する場合にのみ機能します。
Telemetry API の指標名とラベル名
このセクションでは、Telemetry API を使用して Cloud Monitoring に取り込まれる指標の命名規則と要件について説明します。
指標名とラベルキーは、完全な UTF-8 をサポートしていません。
- 正規表現
[a-zA-Z][a-zA-Z0-9_:./]*に準拠していない指標名は拒否されます。 - 正規表現
[a-zA-Z_][a-zA-Z0-9_.]*に準拠していない属性(ラベルキー)を含む DataPoint は拒否されます。
このような理由で指標が拒否されないようにするには、
replace_pattern関数を使用して、指標名と属性を変換するプロセッサを設定します。- 正規表現
重要: コロン(
:)とアンダースコア(_)以外の特殊文字を含む指標名とラベルキーをクエリするには、PromQL の UTF-8 仕様に従って、中かっこ({})と引用符(")で囲む必要があります。たとえば、次のクエリは有効です。{"my.metric.name"}{"my.metric.name", "label.key.KEY"="value"}
Telemetry API の指標と Cloud Monitoring
このセクションでは、Telemetry API と otlphttp エクスポータを使用して取り込まれた指標が Cloud Monitoring とどのように連携するかについて説明します。
INT64型とDOUBLE型の指標の間で値の型の衝突が発生する可能性があります。特に、以前にtarget_info指標を送信したことがある場合は、その可能性が高くなります。このような競合が発生した場合は、INT64指標記述子を削除します。この Golang スクリプトを使用すると、指標スコープからすべてのINT64タイプのtarget_info指標を削除できます。指数ヒストグラムのクエリ時に
leラベルを保持すると、予期しない結果が返されることがあります。より一般的なhistogram_quantile(.99, sum by (le) (metric))クエリは機能するはずです。デルタ指標は、デルタが非常に少ない場合など、特定の状況で正しくクエリされないことがあります。
プロトコル サポート
OTLP エンドポイントは、http/proto、http/json、grpc などのすべての OTLP プロトコルをサポートしています。OpenTelemetry Collector からエクスポートする場合は、任意のプロトコルを使用できます。ただし、ほとんどの SDK エクスポータでは動的トークンの更新がサポートされていないため、SDK から直接エクスポートする場合は、HTTP エクスポータではなく gRPC OTLP エクスポータのみを使用することをおすすめします。詳細については、SDK を使用してアプリケーションから指標を送信するをご覧ください。
課金
OTLP 指標の課金は、「Prometheus Samples Ingested」SKU で行われます。これは、Google Cloud Managed Service for Prometheus の指標に使用されるものと同じです。詳細については、お支払いページをご覧ください。
制限と割り当て
Telemetry API を使用した指標の取り込みには、Telemetry API の指標の上限が適用されます。
また、Cloud Monitoring と Google Cloud Managed Service for Prometheus のすべての標準指標の割り当てと上限が適用されます。たとえば、指標に 200 個を超えるラベルを設定することはできません。
Telemetry API によって取り込まれる指標のデフォルトの割り当ては、1 分あたり 60,000 リクエストです。リクエストあたりの最大バッチサイズが 200 ポイントの場合、これは 1 秒あたり 200,000 サンプルの有効なデフォルトの割り当てになります。割り当ての増加をリクエストできます。
次のステップ
- Telemetry API で OpenTelemetry Collector をデプロイして使用する手順については、コレクタをデプロイして使用するをご覧ください。
- SDK を使用するアプリケーションから Telemetry API に指標を送信する方法については、SDK を使用してアプリケーションから指標を送信するをご覧ください。
- OpenTelemetry ゼロコード インストルメンテーションで OpenTelemetry コレクタと Telemetry API を使用する方法については、Java 用の OpenTelemetry ゼロコード インストルメンテーションを使用するをご覧ください。
- 別のエクスポータから
otlphttpエクスポータに移行する方法については、OTLP エクスポータに移行するをご覧ください。 - Telemetry API の詳細については、Telemetry(OTLP)API の概要をご覧ください。