Python アプリケーション用の Cloud Trace を有効にするには、OpenCensus を使用します。OpenCensus は、複数のバックエンドで機能するトレースと指標データを収集するための、一連の計測化ライブラリです。Python 用の OpenCensus に関する最新情報、その他のドキュメントとサンプルについては、census-instrumentation/opencensus-python をご覧ください。
インストールと構成
pip
を使用して OpenCensus パッケージをインストールします。
pip install opencensus pip install opencensus-ext-stackdriver
Stackdriver エクスポータと OpenCensus トレーサーのパッケージをインポートするようにアプリケーションを更新します。また、アプリケーションで StackdriverExporter
オブジェクトと Tracer
オブジェクトをインスタンス化する必要があります。
エクスポータの詳細については、OpenCensus のトレースをご覧ください。
Google Cloud インフラストラクチャ上で実行している場合、project_id
を Google Cloud プロジェクト ID に設定する必要はありません。このフィールドを設定しない場合、Python 用クライアント ライブラリは Google Cloud メタデータ サーバーからこのデータを自動的に収集します。
Google Cloud インフラストラクチャ上で実行していない場合は、Google Cloud プロジェクト ID をアプリケーションに指定する必要があります。
インフラストラクチャに関係なく、Google Cloud プロジェクト ID を明示的に設定しない場合、OpenCensus により呼び出された google-cloud
Python ライブラリは環境変数 GOOGLE_CLOUD_PROJECT
が設定されているかどうかを自動的に判断し、設定されている場合、ライブラリは Google Cloud プロジェクト ID として GOOGLE_CLOUD_PROJECT
の値を使用します。クライアント ライブラリを使用する場合の認証の詳細については、認証をご覧ください。一般的な情報については、認証のスタートガイドをご覧ください。
環境変数を設定するには、次のようにします。
Linux または macOS
export GOOGLE_CLOUD_PROJECT=your-project-id
Windows
set GOOGLE_CLOUD_PROJECT=your-project-id
PowerShell:
$env:GOOGLE_CLOUD_PROJECT="your-project-id"
パフォーマンスの最適化
トレースデータの通知によるパフォーマンスへの影響を軽減するには、バックグラウンド プロセスでこのデータを送信します。トレースデータのバックグラウンド通知を構成するには、transport=AsyncTransport
を含めて StackdriverExporter
を初期化します。
プラットフォームの構成
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"
Flask のサンプル アプリケーション
Flask を利用する Python アプリケーションのサンプルについては、Trace のクイックスタートをご覧ください。
アプリケーションが Trace データをキャプチャするようにインストルメント化された方法について詳しくは、インストルメンテーションをご覧ください。
トレースの表示
デプロイ後は、Cloud コンソール Trace Viewer でトレースを表示できます。
トラブルシューティング
Cloud Trace に関する問題のトラブルシューティングについては、トラブルシューティング ページをご覧ください。