PHP 用の Stackdriver Trace の設定

Stackdriver Trace は、PHP 用の Stackdriver Trace ライブラリと PHP 用の OpenCensus ライブラリを使用することで、PHP アプリケーションに対して有効になります。

ライブラリのインストール

次のコマンドを使用して、OpenCensus Stackdriver exporter composer パッケージをインストールします(OpenCensus と Trace composer パッケージもインストールされます)。

composer require opencensus/opencensus-exporter-stackdriver

また、次のコマンドを使用して OpenCensus 拡張機能もインストールすることをおすすめします。

pecl install opencensus-alpha

php.ini には次の行を追加する必要もあります。

extension=opencensus.so

Windows 環境の場合は、pecl のダウンロード ページから PHP インストールの拡張ディレクトリに DLL ファイルをダウンロードし、php.ini に次の行を追加します。

extension=opencensus.dll

以下で説明するフレームワークの統合を使用する場合は、OpenCensus 拡張機能が必要です。

ライブラリの有効化

PHP 用の Stackdriver Trace ライブラリを有効にするには:

  1. クラスをインポートします。

    use OpenCensus\Trace\Exporter\StackdriverExporter;
    use OpenCensus\Trace\Tracer;
    

  2. エクスポータを初期化します。

    $exporter = new StackdriverExporter([
        'clientConfig' => [
            'projectId' => $projectId
        ]
    ]);
  3. トレーサーを起動します。

    Tracer::start($exporter);

最適な結果を得るには、コードをスクリプトの先頭に配置します。

クライアントの構成

PHP 用の Stackdriver Trace ライブラリの動作はカスタマイズできます。使用可能な構成オプションの一覧については、エクスポータの構成トレーサーの構成をご覧ください。

カスタム トレーススパンの追加

PHP 用の Stackdriver Trace ライブラリは、HTTP リクエストごとに自動的にトレース レコードを作成します。また、リクエスト内にカスタム トレーススパンを追加することもできます。

Tracer::inSpan(
    ['name' => 'slow_function'],
    function () {
        sleep(1);
    }
);

フレームワークの統合

OpenCensus ライブラリは、ウェブのフレームワークと機能に役立つ統合を提供します。詳細については、使用できる統合フレームワークの例をご覧ください。

Google Cloud Platform での実行

Google Cloud Platform 上で実行されているインスタンスで Stackdriver Trace API アクセス スコープが有効になっている場合は、そのインスタンス用の認証情報を提供する必要はありません。ただし、インスタンスに対して可能な限り広いアクセス スコープを設定してから、Cloud Identity and Access Management を使用して、アクセスを制限することをおすすめします。

App Engine フレキシブル環境

App Engine フレキシブル環境では、デフォルトで Stackdriver Trace API アクセス スコープが有効になっています。また、認証情報やプロジェクト ID を提供しなくても、OpenCensus クライアント ライブラリを使用できます。

App Engine フレキシブル環境は、バックグラウンド プロセスでのトレースデータのレポートに関して、パフォーマンスの最適化を実現します。Stackdriver エクスポータの初期化時には async オプションを使用し、app.yaml ファイルの runtime_config セクションで enable_stackdriver_integration を次のように使用します。

enable_stackdriver_integration: true

エクスポータの構成もご覧ください。

App Engine スタンダード環境

App Engine スタンダード環境では、デフォルトで Stackdriver Trace API アクセス スコープが有効になっています。また、認証情報やプロジェクト ID を提供しなくても、OpenCensus クライアント ライブラリを使用できます。

GKE

GKE で Trace を使用するには、クラスタの作成時に trace.append OAuth アクセス スコープを追加します。

gcloud を使ってクラスタを作成するには、次の手順に従います。

  1. (省略可)gcloud を最新バージョンに更新します。
    gcloud components update
  2. デフォルトのプロジェクト ID を設定します。
    gcloud config set project [PROJECT_ID]
  3. ゾーンクラスタを使用する場合は、デフォルトのコンピューティング ゾーンを設定します。
    gcloud config set compute/zone [COMPUTE_ZONE]
  4. リージョン クラスタを使用する場合は、デフォルトのコンピューティング リージョンを設定します。
    gcloud config set compute/region [COMPUTE_REGION]
  5. create コマンドを発行します。
    gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/trace.append

クラスタの作成の詳細については、クラスタの作成をご覧ください。

Compute Engine

Compute Engine VM インスタンスの場合は、各 VM インスタンスに Stackdriver Trace API アクセス スコープ trace.append を明示的に有効にする必要があります。Google Cloud Platform Console から新しいインスタンスを作成する場合は、[インスタンスの作成] パネルの [ID と API へのアクセス] セクションで次の値を選択します。

  1. [サービス アカウント] には [Compute Engine のデフォルトのサービス アカウント] を選択します
  2. [アクセス スコープ] には [すべての Cloud API に完全アクセス権を許可] を選択します

Compute Engine のデフォルト以外のサービス アカウントを使用するには、インスタンスのサービス アカウントの作成と有効化ローカルやその他の場所での実行をご覧ください。重要なのは、使用するサービス アカウントに Cloud Trace Agent の役割があることです。

ローカルやその他の場所での実行

Stackdriver Trace を GCP 以外で実行するには、GCP プロジェクト ID と該当するサービス アカウントの認証情報を OpenCensus クライアント ライブラリに直接提供する必要があります。サービス アカウントには Cloud Trace エージェントの役割が含まれている必要があります。手順については、サービス アカウントの作成をご覧ください。

プロジェクト ID

エクスポータを初期化する手順の説明に沿って、プロジェクト ID を OpenCensus に提供します。環境変数 GOOGLE_CLOUD_PROJECT をプロジェクト ID に設定し、この変数を読み取るようにアプリケーションを変更することをおすすめします。この環境変数を設定するには、次の操作を行います。

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"

認証情報

GCP クライアント ライブラリでは、アプリケーションのデフォルト認証情報(ADC)を使用してアプリケーションの認証情報を検出します。OpenCensus クライアント ライブラリに認証情報を提供するには、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"

トレースの表示

デプロイ後、GCP Console Trace Viewer でトレースを表示できます。

Trace Viewer のページに移動

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。