Wtyczka Google Cloud eksportuje dane telemetryczne i logowania z Firebase Genkit do pakietu operacyjnego Google Cloud, który obsługuje panel sterowania monitorowania AI w Firebase (w wersji prywatnej).
Instalacja
npm i --save @genkit-ai/google-cloud
Jeśli chcesz lokalnie uruchamiać przepływy, które korzystają z tej wtyczki, musisz też mieć zainstalowane narzędzie Google Cloud CLI.
Konfigurowanie konta Google Cloud
Ten wtyczek wymaga konta Google Cloud (zarejestruj się, jeśli jeszcze go nie masz) i projektu Google Cloud.
Zanim dodasz wtyczkę, sprawdź, czy w projekcie są włączone te interfejsy API:
Te interfejsy API powinny być widoczne w panelu interfejsów API Twojego projektu.
Aby dowiedzieć się więcej o włączaniu i wyłączaniu interfejsów API, kliknij tutaj.
Konfiguracja Genkit
Aby włączyć eksportowanie do Google Cloud Tracing, Logging i Monitoring, wystarczy wywołać enableGoogleCloudTelemetry()
:
import { enableGoogleCloudTelemetry } from '@genkit-ai/google-cloud';
enableGoogleCloudTelemetry();
W wersji produkcyjnej telemetria jest eksportowana automatycznie.
Uwierzytelnianie
Do działania tego wtyczka wymaga identyfikatora projektu Google Cloud i danych logowania do tego projektu. Jeśli uruchamiasz przepływ z środowiska Google Cloud (Cloud Functions, Cloud Run itp.), identyfikator projektu i dane uwierzytelniające są ustawiane automatycznie.
Domyślne uwierzytelnianie aplikacji
Aby uruchomić narzędzie w innych środowiskach, musisz ustawić zmienną środowiskową GCLOUD_PROJECT
na swój projekt Google Cloud i uwierzytelnić się za pomocą narzędzia gcloud
:
gcloud auth application-default login
Więcej informacji znajdziesz w dokumentacji dotyczącej domyślnego uwierzytelniania aplikacji.
Dane logowania na konto usługi
Jeśli używasz konta usługi i uruchamiasz aplikację poza środowiskiem Google Cloud, możesz ustawić swoje dane logowania jako zmienną środowiskową. Aby skonfigurować klucz konta usługi Google Cloud, wykonaj podane tutaj instrukcje.
Po pobraniu pliku klucza możesz określić dane uwierzytelniające na 2 sposoby: za pomocą lokalizacji pliku za pomocą zmiennej środowiskowej GOOGLE_APPLICATION_CREDENTIALS
lub przez bezpośrednie skopiowanie zawartości pliku JSON do zmiennej środowiskowej GCLOUD_SERVICE_ACCOUNT_CREDS
.
Ścieżka do pliku:
GOOGLE_APPLICATION_CREDENTIALS = "path/to/your/key/file"
Tekst bezpośredni:
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"
}'
Konfiguracja wtyczki
Funkcja enableGoogleCloudTelemetry()
przyjmuje opcjonalny obiekt konfiguracji, który konfiguruje instancję 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,
});
Obiekty konfiguracji umożliwiają szczegółową kontrolę różnych aspektów eksportu danych telemetrycznych opisanego poniżej.
dane logowania
Umożliwia określenie danych logowania bezpośrednio za pomocą JWTInput z biblioteki google-auth.
sampler
W przypadkach, gdy eksportowanie wszystkich ścieżek nie jest praktyczne, OpenTelemetry umożliwia próbkowanie ścieżek.
Dostępne są 4 wstępnie skonfigurowane próbnik:
- AlwaysOnSampler – próbkuje wszystkie ścieżki.
- AlwaysOffSampler – próbkowanie bez śladów
- ParentBased (na podstawie sekcji nadrzędnej) – próbki oparte na sekcji nadrzędnej.
- TraceIdRatioBased – próbkowanie określonego odsetka logów czasu (z możliwością konfiguracji).
autoInstrumentation i autoInstrumentationConfig
Włączenie automatycznego pomiaru umożliwia OpenTelemetry rejestrowanie danych telemetrycznych z bibliotek innych firm bez konieczności modyfikowania kodu.
metricExportIntervalMillis
To pole określa interwał eksportu danych w milisekundach.
metricExportTimeoutMillis
To pole określa czas oczekiwania na eksport danych w milisekundach.
disableMetrics
Umożliwia zastąpienie ustawień, które wyłącza eksport danych, zachowując przy tym ścieżki i logi.
disableTraces
Udostępnia zastąpienie, które wyłącza eksportowanie dzienników, zachowując przy tym eksportowanie danych i logów.
disableLoggingIO
Zapewnia zastąpienie, które wyłącza zbieranie logów wejściowych i wyjściowych.
forceDevExport
Ta opcja spowoduje, że Genkit wyeksportuje dane telemetryczne i danych dziennika podczas działania w środowisku dev
(np. lokalnie).
Testowanie integracji
Podczas konfigurowania wtyczki użyj opcji forceDevExport: true
, aby włączyć eksport telemetrii w przypadku lokalnych sesji. Aby wyświetlić dane telemetryczne, otwórz Eksplorator logów, danych lub ścieżek Google Cloud. Możesz też otworzyć panel Firebase AI Monitoring (w ramach prywatnej wersji przedpremierowej), aby wyświetlić telemetrię w formie sformułowanej przez AI.