Python 用 Cloud Trace の設定

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 オブジェクトをインスタンス化する必要があります。

from opencensus.ext.stackdriver import trace_exporter as stackdriver_exporter
import opencensus.trace.tracer

def initialize_tracer(project_id):
    exporter = stackdriver_exporter.StackdriverExporter(
        project_id=project_id
    )
    tracer = opencensus.trace.tracer.Tracer(
        exporter=exporter,
        sampler=opencensus.trace.tracer.samplers.AlwaysOnSampler()
    )

    return 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 のアクセス スコープが有効になっている必要があります。

次の構成では、デフォルトのアクセス スコープ設定により Cloud Trace API が有効化されます。

  • App Engine フレキシブル環境
  • App Engine スタンダード環境

  • Google Kubernetes Engine(GKE)

  • Compute Engine

カスタム アクセス スコープを使用する場合は、Cloud Trace API のアクセス スコープを有効にする必要があります。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)を使用してアプリケーションの認証情報を検索します。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 Console Trace Viewer でトレースを表示できます。

Trace Viewer のページに移動

トラブルシューティング

Cloud Trace に関する問題のトラブルシューティングについては、トラブルシューティング ページをご覧ください。

リソース