Node.js 用 Cloud Trace の設定

Node.js 用 Cloud Trace アプリケーションを有効にするには、Node.js 用 Cloud Trace ライブラリを使用します。

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

  1. Node.js 用 Cloud Trace ライブラリをインストールする前に、Node.js 開発用の環境を準備しておいてください。

  2. Node.js 用 Cloud Trace ライブラリをインストールするには、npm を使用します。

    npm install --save @google-cloud/trace-agent
  3. 他のコードの前に、アプリケーションのメイン スクリプトまたはエントリ ポイントの上部にある Node.js 用 Cloud Trace ライブラリをインポートします。

    require('@google-cloud/trace-agent').start();

Node.js 用 Cloud Trace ライブラリの詳細について、または問題を報告するには、エージェントの cloud-trace-nodejs GitHub リポジトリ をご覧ください。

クライアント ライブラリの構成

Node.js 用 Cloud Trace ライブラリの動作をカスタマイズできます。options オブジェクトを使用してライブラリの start メソッドに渡すことができる構成オプションのリストについては、GitHub のライブラリの構成をご覧ください。

次の例では、Google Cloud プロジェクト ID を指定し、認証情報ファイルにパスを設定する方法を示しています。Google Cloud で実行している場合、これらの 2 つのステートメントはオプションです。

require('@google-cloud/trace-agent').start({
  projectId: 'your-project-id',
  keyFilename: '/path/to/key.json',
});

Google Cloud インフラストラクチャ上で実行している場合、projectId を Google Cloud プロジェクト ID に設定する必要はありません。このフィールドを設定しない場合、Node.js 用クライアント ライブラリは Google Cloud メタデータ サーバーからこのデータを自動的に収集します。

Google Cloud インフラストラクチャ上で実行していない場合は、Google Cloud プロジェクト ID をアプリケーションに指定する必要があります。

インフラストラクチャに関係なく、Node.js の場合、Google Cloud プロジェクト ID を明示的に設定しないと、cloud-trace-nodejs ライブラリは環境変数 GCLOUD_PROJECT が設定されているかどうかを自動的に判断します。設定されている場合、ライブラリは Google Cloud プロジェクト ID として GCLOUD_PROJECT の値を使用します。検索ファイルの詳細については、cloud-trace-nodejs/src/index をご覧ください。 環境変数を設定するには、次の操作を行います。

Linux または macOS

export GCLOUD_PROJECT=your-project-id

Windows

set GCLOUD_PROJECT=your-project-id

PowerShell:

$env:GCLOUD_PROJECT="your-project-id"

プラットフォームの構成

Cloud Trace は Google Cloud と他のプラットフォームで使用できます。

Google Cloud での実行

アプリケーションが Google Cloud で実行されている場合、認証情報をサービス アカウントの形式でクライアント ライブラリに提供する必要はありません。ただし、Google Cloud Platform で Cloud Trace API のアクセス スコープが有効になっている必要があります。

サポートされている Google Cloud 環境の一覧については、環境サポートをご覧ください。

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

カスタム アクセス スコープを使用する場合は、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"

サンプル アプリケーション

if (process.env.NODE_ENV === 'production') {
  require('@google-cloud/trace-agent').start();
}

const express = require('express');
const got = require('got');

const app = express();
const DISCOVERY_URL = 'https://www.googleapis.com/discovery/v1/apis';

// This incoming HTTP request should be captured by Trace
app.get('/', async (req, res) => {
  // This outgoing HTTP request should be captured by Trace
  try {
    const {body} = await got(DISCOVERY_URL, {responseType: 'json'});
    const names = body.items.map(item => item.name);
    res.status(200).send(names.join('\n')).end();
  } catch (err) {
    console.error(err);
    res.status(500).end();
  }
});

// Start the server
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`App listening on port ${PORT}`);
  console.log('Press Ctrl+C to quit.');
});

トレースを表示

Google Cloud コンソールのナビゲーション パネルで [Trace] を選択し、次に [ Trace エクスプローラ] を選択します。

[Trace エクスプローラ] に移動

トラブルシューティング

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

リソース