計測サンプルの概要

このドキュメントでは、GoJavaNode.jsPython 言語用に提供されているインストルメンテーション サンプルの構造について説明します。これらのサンプルは、アプリケーションを計測する方法に関するガイダンスを提供します。

他の構成を示す他のサンプルもご覧ください。

サンプルの仕組み

Go、Java、Node.js、Python のサンプルでは、OpenTelemetry プロトコルを使用してトレースデータと指標データを収集します。サンプルでは、構造化ログを書き込むようにロギング フレームワークを構成し、OpenTelemetry Collector はアプリケーションの stdout ストリームから読み取るように構成されています。フレームワークの推奨事項については、計測方法を選択するをご覧ください。

アプリケーションは Docker を使用してビルドおよびデプロイされます。OpenTelemetry でアプリケーションを計測する場合、Docker を使用する必要はありません。

サンプルは、Cloud Shell、 Google Cloudリソース、またはローカル開発環境で実行できます。

詳細

サンプルでは、OpenTelemetry Collector をサイドカーとして使用して、アプリケーションのテレメトリーを受信して拡充し、Google Cloud エクスポータを使用して Google Cloud プロジェクトに送信します。エクスポータは、テレメトリーを Cloud Trace API、Cloud Monitoring API、Cloud Logging API と互換性のある形式に変換します。次に、API コマンドを実行して、変換されたデータを Google Cloud プロジェクトに送信します。

サンプルは、次の方法を示しています。

  1. OpenTelemetry Collector を使用して指標とトレースを収集するように OpenTelemetry を構成します。

    サンプルを確認すると、このステップの複雑さは言語によって異なることがわかります。たとえば、Go の場合、このステップでは、指標とトレースの収集を構成する関数を呼び出すように main 関数を構成します。Go では、HTTP サーバーもクライアントも更新されています。

  2. 構造化ログを書き込むようにロギング フレームワークを構成します。

    アプリケーションで構造化ログを書き込むことをおすすめします。これにより、ログ ペイロードが JSON オブジェクトとしてフォーマットされます。これらのログでは、特定の JSON パスを検索するクエリを作成できます。また、ログ ペイロード内の特定のフィールドをインデックスに登録できます。

    Google Kubernetes Engine などの一部のサービスには、構造化ログをスクレイピングして Google Cloud プロジェクトに送信するエージェントが組み込まれています。Compute Engine などの他のサービスでは、ログをスクレイピングして送信するエージェントをインストールする必要があります。インストールするエージェントについては、Ops エージェントの概要をご覧ください。

    これらのサンプルを使用するのにエージェントをインストールする必要はありません。

  3. Docker ファイルを構成します。すべてのサンプルには、次の YAML ファイルが含まれています。

    • docker-compose.yaml: アプリケーションのサービス、OpenTelemetry Collector、ロードジェネレータを構成します。たとえば、OpenTelemetry Collector のサービス otelcol では、イメージ、ボリューム、環境変数を指定します。OpenTelemetry コレクタのエンドポイントは、app サービスで指定された OTEL_EXPORTER_OTLP_ENDPOINT 環境変数によって設定されます。

    • otel-collector-config.yaml: レシーバー、エクスポータ、プロセッサ、パイプラインを構成します。

      telemetry サービスは、トレースデータ、指標データ、ログデータのパイプラインを定義します。各パイプライン エントリには、レシーバー、プロセッサ、エクスポータが指定されます。指標とトレースには同じレシーバー(otlp)が使用されます。

      exporters セクションでは、収集されたデータを Google Cloud プロジェクトにエクスポートする方法について説明します。すべてのテレメトリーでエクスポータが使用されます。 Google Cloud エクスポータはテレメトリーを Cloud Trace API、Cloud Monitoring API、Cloud Logging API と互換性のある形式に変換します。次に、API コマンドを実行して、変換されたデータを Google Cloud プロジェクトに送信します。

    • docker-compose.creds.yaml: このファイルは、必要に応じてGoogle Cloud 認証情報ファイルを otelcol コンテナにマウントします。このファイルは、アプリケーションのデフォルト認証情報(ADC)がファイルとしてのみ使用可能なローカルマシンでサンプルを実行する場合に必要です。

必要な権限

Cloud Shell、リソース、ローカル開発環境でサンプルを実行する場合は、このセクションに記載されている権限で十分です。 Google Cloud本番環境アプリケーションの場合、通常、サービス アカウントはログ、指標、トレース データを書き込む認証情報を提供します。

必要な API

テレメトリー データを Google Cloud プロジェクトに送信するために必要な API について説明します。

Google Cloud コンソール

Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.

Enable the APIs

Google Cloud CLI

Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs:

gcloud services enable logging.googleapis.com monitoring.googleapis.com cloudtrace.googleapis.com

次のステップ