Wtyczka Google Cloud

Wtyczka Google Cloud eksportuje dane telemetryczne i dane logowania Firebase Genkit do pakietu operacyjnego Google Cloud.

Instalacja

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

Jeśli chcesz lokalnie uruchamiać przepływy korzystające z tej wtyczki, musisz też zainstalować narzędzie Google Cloud CLI.

Skonfiguruj konto Google Cloud

Ta wtyczka wymaga konta Google Cloud (zarejestruj się, jeśli jeszcze go nie masz) oraz projektu Google Cloud.

Przed dodaniem wtyczki upewnij się, że w projekcie włączone są te interfejsy API:

Te interfejsy API powinny być wymienione w panelu interfejsów API Twojego projektu.

Kliknij tutaj, aby dowiedzieć się więcej o włączaniu i wyłączaniu interfejsów API.

Konfiguracja Genkit

Aby włączyć eksportowanie danych do Google Cloud Tracking, Logging i Monitoring, dodaj wtyczkę googleCloud do konfiguracji Genkit:

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

export default configureGenkit({
  plugins: [googleCloud()],
  enableTracingAndMetrics: true,
  telemetry: {
    instrumentation: 'googleCloud',
    logger: 'googleCloud',
  },
});

W przypadku uruchomienia wersji produkcyjnej dane telemetryczne są automatycznie eksportowane.

Wtyczka wymaga identyfikatora projektu Google Cloud oraz danych logowania do projektu Google Cloud. Jeśli uruchamiasz przepływ ze środowiska Google Cloud (Cloud Functions, Cloud Run itp.), identyfikator projektu i dane logowania są ustawiane automatycznie. Uruchamianie w innych środowiskach wymaga ustawienia zmiennej środowiskowej GCLOUD_PROJECT na projekt Google Cloud i uwierzytelnienia za pomocą narzędzia gcloud:

gcloud auth application-default login

Więcej informacji znajdziesz w dokumentacji domyślnych danych logowania aplikacji.

Konfiguracja wtyczki

Wtyczka googleCloud() przyjmuje opcjonalny obiekt konfiguracji:

{
    projectId?: string,
    telemetryConfig?: TelemetryConfig
}

Identyfikator projektu

Ta opcja umożliwia jawne podanie identyfikatora projektu Google Cloud. W większości przypadków jest to niepotrzebne.

Konfiguracja telemetrii

Ta opcja umożliwia skonfigurowanie instancji OpenTelemetry NodeSDK.

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

googleCloud({
  telemetryConfig: {
    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,
  },
});

forceDevExport

Ta opcja wymusi eksportowanie danych telemetrycznych i dzienników przez usługę Genkit, gdy zostanie uruchomiona w środowisku dev (np. lokalnie).

kompilacja fragmentów

W przypadkach, w których eksportowanie wszystkich logów czasu nie jest praktyczne, OpenTelemetry umożliwia próbkowanie logów czasu.

Dostępne są 4 wstępnie skonfigurowane próbki:

AutoInstrumentation i autoInstrumentationConfig

Włączenie automatycznej instrumentacji umożliwia usłudze OpenTelemetry rejestrowanie danych telemetrycznych z bibliotek innych firm bez konieczności modyfikowania kodu.

Interwał eksportu danych

To pole określa interwał eksportowania danych w milisekundach.

Monitorowanie produkcyjne za pomocą pakietu operacyjnego Google Cloud

Po wdrożeniu przepływu przejdź do pakietu operacyjnego Google Cloud i wybierz swój projekt.

Logi i logi czasu

W menu bocznym znajdź „Logowanie” i kliknij „Eksplorator logów”.

Wyświetlą się wszystkie logi powiązane z wdrożonym przepływem, w tym logi console.log(). Każdy log poprzedzony prefiksem [genkit] to wewnętrzny log Genkit zawierający informacje, które mogą przydać się podczas debugowania. Na przykład dzienniki Genkit w formacie Config[...] zawierają metadane, takie jak temperatura i wartości topK dla konkretnych wnioskowania LLM. Logi w formacie Output[...] zawierają odpowiedzi LLM, a logi Input[...] zawierają prompty. Usługa Cloud Logging ma rozbudowane listy kontroli dostępu, które umożliwiają szczegółową kontrolę nad poufnymi logami.

W przypadku określonych wierszy logu można przejść do odpowiednich logów czasu, klikając ikonę rozszerzonego menu i wybierając „Wyświetl w szczegółach logu czasu”.

Spowoduje to wyświetlenie panelu podglądu logu czasu, w którym możesz szybko sprawdzić szczegóły logu czasu. Aby zobaczyć pełne szczegóły, kliknij link „Wyświetl w Trace” w prawym górnym rogu panelu.

Najbardziej widocznym elementem nawigacyjnym w Cloud Trace jest wykres punktowy logu czasu. Zawiera wszystkie zebrane ślady w danym przedziale czasu.

Kliknięcie każdego punktu danych spowoduje wyświetlenie jego szczegółów pod wykresem punktowym.

Widok szczegółowy zawiera kształt przepływu, w tym wszystkie kroki oraz ważne informacje o czasie. Usługa Cloud Trace ma możliwość przeplatania w tym widoku wszystkich logów powiązanych z danym logiem czasu. W menu „Logi i zdarzenia” wybierz opcję „Pokaż rozwinięte”.

Widok wynikowy umożliwia szczegółowe badanie logów w kontekście logu czasu, w tym promptów i odpowiedzi LLM.

Wskaźniki

Aby wyświetlić wszystkie wskaźniki wyeksportowane przez Genkit, wybierz „Logowanie” z bocznego menu, a następnie kliknij „Zarządzanie wskaźnikami”.

Konsola zarządzania wskaźnikami zawiera widok tabelaryczny wszystkich zebranych wskaźników, w tym tych dotyczących Cloud Run i jego otaczającego środowiska. Po kliknięciu opcji „Zadanie” pojawi się lista ze wskaźnikami zebranymi przez Genkit. Wszystkie dane z prefiksem genkit stanowią wewnętrzne dane Genkit.

Genkit zbiera kilka kategorii wskaźników, w tym dane na poziomie przepływu, działania i danych na poziomie generowania. Każdy rodzaj danych ma kilka przydatnych wymiarów, które ułatwiają skuteczne filtrowanie i grupowanie.

Typowe wymiary to:

  • flow_name – nazwa najwyższego poziomu przepływu.
  • flow_path – span z nadrzędnym łańcuchem spanów sięgających do spanu pierwiastka.
  • error_code – w przypadku błędu: odpowiedni kod błędu.
  • error_message – w przypadku błędu: odpowiedni komunikat o błędzie.
  • model – nazwa modelu.
  • temperaturewartość temperatury wnioskowania.
  • topKwartość wnioskowania.
  • topPwartość górnego P wnioskowania.

Dane na poziomie przepływu

Nazwa Wymiary
genkit/flow/requests Flow_name, error_code oraz error_message
genkit/flow/opóźnienie nazwa_przepływu

Dane na poziomie działania

Nazwa Wymiary
genkit/action/requests Flow_name, error_code oraz error_message
generowanie/działanie/opóźnienie nazwa_przepływu

Generowanie danych na poziomie

Nazwa Wymiary
genkit/ai/generate ścieżka_przepływu, model, temperatura, topK, topP, kod_błędu oraz komunikat_błędu
genkit/ai/generate/input_tokens ścieżka_przepływu, model, temperatura, topK, topP
genkit/ai/generate/output_tokens ścieżka_przepływu, model, temperatura, topK, topP
genkit/ai/generate/input_characters ścieżka_przepływu, model, temperatura, topK, topP
genkit/ai/generate/output_characters ścieżka_przepływu, model, temperatura, topK, topP
genkit/ai/generate/input_images ścieżka_przepływu, model, temperatura, topK, topP
genkit/ai/generate/output_images ścieżka_przepływu, model, temperatura, topK, topP
genkit/ai/generowanie/opóźnienie ścieżka_przepływu, model, temperatura, topK, topP, kod_błędu oraz komunikat_błędu

Wizualizację wskaźników można wykonać za pomocą narzędzia Metrics Explorer. W bocznym menu wybierz „Logowanie” i kliknij „Metrics Explorer”.

Aby wybrać wskaźnik, kliknij menu „Wybierz wskaźnik”, wybierz „Węzeł ogólny”, „Genkit” i konkretny wskaźnik.

Wizualizacja danych zależy od ich typu (licznik, histogram itp.). Metrics Explorer udostępnia zaawansowane narzędzia do agregacji i wykonywania zapytań, które ułatwiają wykresy danych według różnych wymiarów.

Opóźnienie telemetryczne

Może wystąpić niewielkie opóźnienie w wyświetlaniu danych telemetrycznych dotyczących konkretnego wykonania przepływu w pakiecie operacyjnym Cloud. W większości przypadków opóźnienie nie przekracza 1 minuty.

Limity

Istnieje kilka limitów, o których należy pamiętać:

Koszt

Usługi Cloud Logging, Cloud Trace i Cloud Monitoring mają duże poziomy bezpłatne. Konkretne ceny znajdziesz na tych stronach: