このドキュメントでは、SDK と gRPC エクスポータ(SDK での使用が推奨されるエクスポータ)を使用して、アプリケーションから OTLP エンドポイントに指標を直接送信する方法について説明します。OTLP エンドポイントは、http/proto、http/json、grpc など、すべての OTLP プロトコルをサポートしています。詳細については、プロトコルのサポートをご覧ください。
アプリケーション指標を OTLP エンドポイントに直接送信する場合、OpenTelemetry Collector は認証と拡充を処理しません。SDK を使用してアプリケーションから指標を送信する場合は、次の操作を行う必要があります。
- 認証情報を取得するの説明に従って、Google アプリケーションのデフォルト認証情報を使用するように OTLP gRPC エクスポータの認証情報を構成します。
- アプリケーションから Google Cloud と Kubernetes リソースを検出します。この方法は、実行しているアプリケーションによって異なります。
始める前に
サンプルを実行するには、必要な API を有効にして、認証情報を取得する必要があります。
API を有効にする
次のコマンドを実行して、Google Cloud プロジェクトで Cloud Monitoring API と Telemetry API を有効にします。
gcloud services enable monitoring.googleapis.com telemetry.googleapis.com
認証情報を取得する
次のコマンドを実行して、OTLP gRPC エクスポータの認証情報を構成し、Google アプリケーションのデフォルト認証情報を使用するようにします。
gcloud auth application-default login
言語固有の例
このセクションでは、カウンタ指標を作成して書き込む言語固有のサンプルをいくつか紹介します。サンプルを実行してコードを表示する方法については、タブを選択してください。
Go
この例の構成と実行については、Go サンプルの README ファイルをご覧ください。
Java
この例の構成と実行については、Java サンプルの README ファイルをご覧ください。
NodeJS
この例の構成と実行については、NodeJS サンプルの README ファイルをご覧ください。
Python
この例の実行については、Python サンプルの README ファイルをご覧ください。
Pod として実行されているアプリケーションに Downward API を使用する
Kubernetes の Pod としてアプリケーションを実行していて、OpenTelemetry Collector を介してテレメトリーを送信していない場合は、下向き API を使用して Kubernetes リソース属性を設定してください。
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NAMESPACE_NAME
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: CONTAINER_NAME
value: my-container-name
- name: OTEL_RESOURCE_ATTRIBUTES
value: k8s.pod.name=$(POD_NAME),k8s.namespace.name=$(NAMESPACE_NAME),k8s.container.name=$(CONTAINER_NAME)
次のステップ
- OpenTelemetry コレクタと Telemetry API を OpenTelemetry ゼロコード インストルメンテーションで使用する方法については、Java 用の OpenTelemetry ゼロコード インストルメンテーションを使用するをご覧ください。
- 別のエクスポータから
otlphttpエクスポータに移行する方法については、OTLP エクスポータに移行するをご覧ください。 - Telemetry API の詳細については、Telemetry(OTLP)API の概要をご覧ください。