OTLP 指標の取り込みの概要

このドキュメントでは、otlphttp エクスポータと OpenTelemetry OTLP プロトコルを実装する Telemetry(OTLP)APItelemetry.googleapis.com で OpenTelemetry Collector を使用する方法について説明します。otlphttp エクスポータと Telemetry API を組み合わせることで、OTLP 指標を Cloud Monitoring に取り込むことができます。

OTLP エンドポイントは、http/protohttp/jsongrpc などのすべての 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/protohttp/jsongrpc などのすべての 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 サンプルの有効なデフォルトの割り当てになります。割り当ての増加をリクエストできます。

次のステップ