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 追蹤、記錄和監控功能,只要呼叫 enableGoogleCloudTelemetry()
即可:
import { enableGoogleCloudTelemetry } from '@genkit-ai/google-cloud';
enableGoogleCloudTelemetry();
在實際環境中執行時,系統會自動匯出遙測資料。
驗證
外掛程式需要 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 服務帳戶金鑰。
下載金鑰檔案後,您可以透過兩種方式指定憑證:使用 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 允許追蹤記錄取樣。
四種預先設定的取樣器如下:
- AlwaysOnSampler:擷取所有追蹤記錄的樣本
- AlwaysOffSampler:不擷取任何追蹤記錄
- ParentBased - 根據父項時距的樣本
- TraceIdRatioBased:取樣追蹤記錄的百分比 (可設定)
autoInstrumentation 和 autoInstrumentationConfig
啟用自動檢測功能後,OpenTelemetry 就能擷取第三方程式庫中的遙測資料,而不需要修改程式碼。
metricExportIntervalMillis
這個欄位會以毫秒為單位,指定指標匯出間隔。
metricExportTimeoutMillis
這個欄位會以毫秒為單位,指定指標匯出作業的逾時時間。
disableMetrics
提供覆寫值,可在匯出追蹤記錄和記錄檔的同時,停用指標匯出功能。
disableTraces
提供覆寫值,可在匯出指標和記錄的同時,停用匯出追蹤記錄的功能。
disableLoggingIO
提供覆寫值,停用輸入和輸出記錄收集功能。
forceDevExport
這個選項會在 dev
環境 (例如本機) 中執行時,強制 Genkit 匯出遙測資料和記錄資料。
測試整合
設定外掛程式時,請使用 forceDevExport: true
為本機執行作業啟用遙測匯出功能。前往 Google Cloud 記錄、Metrics 或 Trace Explorer 查看遙測資料。或者,您也可以前往 Firebase AI Monitoring 資訊主頁 (私人預先發布版),以 AI 專用的視圖查看遙測資料。