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 つあります。
- AlwaysOnSampler - すべてのトレースをサンプリングします。
- AlwaysOffSampler - トレースをサンプリングしない
- ParentBased - 親スパンに応じたサンプル
- TraceIdRatioBased - 構成可能な割合のトレースをサンプリングします。
autoInstrumentation と autoInstrumentationConfig
自動計測を有効にすると、OpenTelemetry はコードを変更することなくサードパーティ ライブラリからテレメトリー データをキャプチャできます。
metricExportIntervalMillis
このフィールドには、指標のエクスポート間隔をミリ秒単位で指定します。
metricExportTimeoutMillis
このフィールドには、指標エクスポートのタイムアウトをミリ秒単位で指定します。
disableMetrics
トレースやログのエクスポートを続行しながら、指標のエクスポートを無効にするオーバーライドを指定します。
disableTraces
指標とログのエクスポートを続行しながら、トレースのエクスポートを無効にするオーバーライドを指定します。
disableLoggingIO
入力ログと出力ログの収集を無効にするオーバーライドを指定します。
forceDevExport
このオプションを使用すると、dev
環境(ローカルなど)で実行するときに、テレメトリーとログデータを強制的にエクスポートします。
インテグレーションをテストする
プラグインを構成するときに、forceDevExport: true
を使用してローカル実行のテレメトリー エクスポートを有効にします。Google Cloud のログ、指標、トレース エクスプローラに移動してテレメトリーを表示します。または、Firebase AI Monitoring ダッシュボード(非公開プレビュー)に移動して、テレメトリーを AI に特化したビューで確認することもできます。