Google Cloud プラグイン

Google Cloud プラグインは、Firebase Genkit のテレメトリー データとロギング データを Google Cloud のオペレーション スイートにエクスポートします。これにより、Firebase AI Monitoring ダッシュボード(限定公開プレビュー)が機能します。

インストール

npm i --save @genkit-ai/google-cloud

このプラグインを使用するフローをローカルで実行する場合は、Google Cloud CLI ツールもインストールする必要があります。

Google Cloud アカウントの設定

このプラグインを使用するには、Google Cloud アカウント(まだアカウントをお持ちでない場合は登録してください)と Google Cloud プロジェクトが必要です。

プラグインを追加する前に、プロジェクトで次の API が有効になっていることを確認します。

これらの API は、プロジェクトの API ダッシュボードに表示されます。

API の有効化と無効化について詳しくは、こちらをクリックしてください。

Genkit の設定

Google Cloud Tracing、Logging、Monitoring へのエクスポートを有効にするには、enableGoogleCloudTelemetry() を呼び出します。

import { enableGoogleCloudTelemetry } from '@genkit-ai/google-cloud';

enableGoogleCloudTelemetry();

本番環境で実行すると、テレメトリーが自動的にエクスポートされます。

Authentication

このプラグインには、Google Cloud プロジェクト ID と Google Cloud プロジェクトの認証情報が必要です。Google Cloud 環境(Cloud Functions、Cloud Run など)からフローを実行している場合、プロジェクト ID と認証情報は自動的に設定されます。

アプリケーションのデフォルト認証情報

他の環境で実行する場合は、GCLOUD_PROJECT 環境変数を Google Cloud プロジェクトに設定し、gcloud ツールを使用して認証する必要があります。

gcloud auth application-default login

詳細については、アプリケーションのデフォルト認証情報のドキュメントをご覧ください。

サービス アカウント認証情報

サービス アカウントを使用していて、Google Cloud 環境の外部で実行している場合は、認証情報を環境変数として設定できます。Google Cloud サービス アカウント キーを設定する手順に沿って操作します。

キーファイルをダウンロードしたら、認証情報を 2 つの方法で指定できます。GOOGLE_APPLICATION_CREDENTIALS 環境変数を使用してファイルの場所を指定するか、json ファイルの内容を環境変数 GCLOUD_SERVICE_ACCOUNT_CREDS に直接コピーします。

ファイルパス:

GOOGLE_APPLICATION_CREDENTIALS = "path/to/your/key/file"

直接コピー:

GCLOUD_SERVICE_ACCOUNT_CREDS='{
  "type": "service_account",
  "project_id": "your-project-id",
  "private_key_id": "your-private-key-id",
  "private_key": "your-private-key",
  "client_email": "your-client-email",
  "client_id": "your-client-id",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "your-cert-url"
}'

プラグイン構成

enableGoogleCloudTelemetry() 関数は、OpenTelemetry NodeSDK インスタンスを構成するオプションの構成オブジェクトを受け取ります。

import { AlwaysOnSampler } from '@opentelemetry/sdk-trace-base';

enableGoogleCloudTelemetry({
  forceDevExport: false, // Set this to true to export telemetry for local runs
  sampler: new AlwaysOnSampler(),
  autoInstrumentation: true,
  autoInstrumentationConfig: {
    '@opentelemetry/instrumentation-fs': { enabled: false },
    '@opentelemetry/instrumentation-dns': { enabled: false },
    '@opentelemetry/instrumentation-net': { enabled: false },
  },
  metricExportIntervalMillis: 5_000,
});

構成オブジェクトを使用すると、以下に示すテレメトリー エクスポートのさまざまな側面をきめ細かく制御できます。

認証情報

google-auth ライブラリの JWTInput を使用して認証情報を直接指定できます。

サンプラー

すべてのトレースをエクスポートできない場合は、OpenTelemetry でトレースのサンプリングを行うことができます。

事前構成済みのサンプラーは 4 つあります。

autoInstrumentation と autoInstrumentationConfig

自動計測を有効にすると、OpenTelemetry はコードを変更することなくサードパーティ ライブラリからテレメトリー データをキャプチャできます。

metricExportIntervalMillis

このフィールドには、指標のエクスポート間隔をミリ秒単位で指定します。

metricExportTimeoutMillis

このフィールドには、指標エクスポートのタイムアウトをミリ秒単位で指定します。

disableMetrics

トレースやログのエクスポートを続行しながら、指標のエクスポートを無効にするオーバーライドを指定します。

disableTraces

指標とログのエクスポートを続行しながら、トレースのエクスポートを無効にするオーバーライドを指定します。

disableLoggingIO

入力ログと出力ログの収集を無効にするオーバーライドを指定します。

forceDevExport

このオプションを使用すると、dev 環境(ローカルなど)で実行するときに、テレメトリーとログデータを強制的にエクスポートします。

インテグレーションをテストする

プラグインを構成するときに、forceDevExport: true を使用してローカル実行のテレメトリー エクスポートを有効にします。Google Cloud のログ、指標、トレース エクスプローラに移動してテレメトリーを表示します。または、Firebase AI Monitoring ダッシュボード(非公開プレビュー)に移動して、テレメトリーを AI に特化したビューで確認することもできます。