このページでは、次のステップについて説明します。
- OpenTelemetry パッケージをインストールする。
- Cloud Trace にスパンをエクスポートするようにアプリケーションを構成する。
- プラットフォームを構成する。
リリース情報については、以下をご覧ください。
OpenTelemetry リファレンスの内容については、以下をご覧ください。
追加のドキュメントとサンプルを含め、C++ の OpenTelemetry に関する最新情報については、OpenTelemetry をご覧ください。
始める前に
Enable the Cloud Trace API.
OpenTelemetry パッケージをインストールする
- C++ 開発環境を設定する。
- Google Cloud C++ OpenTelemetry エクスポータ ライブラリをインストールします。インストール情報については、OpenTelemetry のクイックスタートをご覧ください。
Cloud Trace へのスパンのエクスポートを構成する
トレースデータのエクスポートを構成するには、main()
メソッドの google::cloud::otel::ConfigureBasicTracing(...)
メソッドを呼び出します。
フィールド project_id
は、トレースを保存する Google Cloud プロジェクトです。
ConfigureBasicTracing(...)
メソッドは、Cloud Trace エクスポータを実装する TracerProvider
オブジェクトをインスタンス化します。ConfigureBasicTracing(...)
への呼び出しで返されたオブジェクトは、上記の TracerProvider
オブジェクトが存在する場合、復元されます。
サンプルレートを構成する
アプリケーションが大量のトレースデータを生成することがあります。次のサンプルは、サンプリング レートの構成方法を示しています。
カスタム TracerProvider
を使用して Cloud Trace にエクスポートする
カスタムの TracerProvider
オブジェクトが必要なユースケースもあります。たとえば、複数のエクスポータを同時に使用する場合は、カスタムの TracerProvider
オブジェクトを作成する必要があります。その場合は、Cloud Trace エクスポータを直接使用できます。
独自のアプリケーションを計測可能にする
トレーススパンをキャプチャするようにアプリケーションを構成する方法については、OpenTelemetry トレースをご覧ください。このページでは、次のすべての方法について説明します。
- スパンを作成する
- ネストされたスパンを作成する
- スパン属性を設定する
- イベントでスパンを作成する
- リンクを使用してスパンを作成する
サンプル アプリケーション
サンプル アプリケーションについては、クイックスタートをご覧ください。
プラットフォームの構成
Cloud Trace は Google Cloud と他のプラットフォームで使用できます。
Google Cloud での実行
アプリケーションが Google Cloud で実行されている場合、認証情報をサービス アカウントの形式でクライアント ライブラリに提供する必要はありません。ただし、Google Cloud Platform で Cloud Trace API のアクセス スコープが有効になっている必要があります。
サポートされている Google Cloud 環境の一覧については、環境サポートをご覧ください。
次の構成では、デフォルトのアクセス スコープ設定により Cloud Trace API が有効化されます。
- App Engine フレキシブル環境
App Engine スタンダード環境
Google Kubernetes Engine(GKE)
Compute Engine
Cloud Run
カスタム アクセス スコープを使用する場合は、Cloud Trace API のアクセス スコープを有効にする必要があります。
Google Cloud Console を使用して環境のアクセス スコープを構成する方法については、Google Cloud プロジェクトの構成をご覧ください。
gcloud
ユーザーの場合は、--scopes
フラグを使用してアクセス スコープを指定し、trace.append
Cloud Trace API アクセス スコープを含めます。たとえば、Cloud Trace API のみを有効にして GKE クラスタを作成するには、次のようにします。gcloud container clusters create example-cluster-name --scopes=https://www.googleapis.com/auth/trace.append
ローカルやその他の場所での実行
アプリケーションが Google Cloud の外部で実行されている場合は、認証情報をサービス アカウントの形式でクライアント ライブラリに提供する必要があります。サービス アカウントには Cloud Trace エージェント ロールが含まれている必要があります。手順については、サービス アカウントの作成をご覧ください。
Google Cloud クライアント ライブラリは、アプリケーションのデフォルト認証情報(ADC)を使用してアプリケーションの認証情報を検索します。
これらの認証情報を指定するには、次の 3 つの方法があります。
実行
gcloud auth application-default login
オペレーティング システムのデフォルトパスにサービス アカウントを配置します。以下に、Windows と Linux のデフォルトのパスを一覧表示します。
Windows:
%APPDATA%/gcloud/application_default_credentials.json
Linux:
$HOME/.config/gcloud/application_default_credentials.json
GOOGLE_APPLICATION_CREDENTIALS
環境変数をサービス アカウントのパスに設定します。
Linux / macOS
export GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key
Windows
set GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key
PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="path-to-your-service-accounts-private-key"
トレースを表示
Google Cloud コンソールで、[Trace エクスプローラ] ページに移動します。
このページは、検索バーを使用して見つけることもできます。
トラブルシューティング
Cloud Trace に関する問題のトラブルシューティングについては、トラブルシューティング ページをご覧ください。
C++ Cloud Trace エクスポータをデバッグするには、リファレンス ドキュメントのトラブルシューティングをご覧ください。
リソース
- https://opentelemetry.io/
- open-telemetry/opentelemetry-cpp GitHub リポジトリ
- google-cloud-cpp OpenTelemetry エクスポータ ライブラリの GitHub リポジトリ。