Google Cloud-Plug-in für Telemetrie und Logging

Das Google Cloud-Plug-in exportiert die Telemetrie- und Logging-Daten von Firebase Genkit in die Operations-Suite von Google Cloud.

Vorbereitung

Wenn Sie Abläufe, die dieses Plug-in verwenden, lokal ausführen möchten, muss das Google Cloud CLI-Tool installiert sein.

Google Cloud-Konto einrichten

Für dieses Plug-in ist ein Google Cloud-Konto (registrieren Sie sich, falls Sie noch keines haben) und ein Google Cloud-Projekt erforderlich.

Bevor Sie das Plug-in hinzufügen, müssen die folgenden APIs für Ihr Projekt aktiviert sein:

Diese APIs sollten im API-Dashboard für Ihr Projekt aufgeführt sein.

Weitere Informationen zum Aktivieren und Deaktivieren von APIs

Konfiguration

Wenn Sie den Export in Google Cloud Tracing, Logging und Monitoring aktivieren möchten, importieren Sie das googlecloud-Paket und führen Sie Init() aus. Nach dem Aufruf von Init() wird Ihre Telemetrie automatisch exportiert.

import "github.com/firebase/genkit/go/plugins/googlecloud"
if err := googlecloud.Init(
	ctx,
	googlecloud.Config{ProjectID: "your-google-cloud-project"},
); err != nil {
	return err
}

Sie müssen das Google Cloud-Projekt angeben, in das Sie Telemetriedaten exportieren möchten. Es gibt auch einige optionale Parameter:

  • ForceExport: Telemetriedaten auch dann exportieren, wenn sie in einer Entwicklungsumgebung ausgeführt werden (z. B. bei Verwendung von genkit start oder genkit flow:run). So können Sie Ihre Integration schnell testen und Ihre ersten Ereignisse zum Monitoring in Google Cloud senden.

    Wenn Sie diese Option verwenden, müssen Sie Ihre Cloud-Anmeldedaten auch lokal verfügbar machen:

    gcloud auth application-default login
    
  • MetricInterval: Das Intervall in Nanosekunden, in dem Telemetry-Informationen exportiert werden sollen. Standardmäßig beträgt die Einstellung 60 Sekunden (60e9 Nanosekunden).

  • LogLevel: Die Mindestwichtigkeitsstufe der zu exportierenden Logeinträge. Standardmäßig slog.LevelInfo.

Das Plug-in benötigt die Anmeldedaten für Ihr Google Cloud-Projekt. Wenn Sie Ihre Workflows in einer Google Cloud-Umgebung (z. B. Cloud Run) ausführen, werden die Anmeldedaten automatisch festgelegt. Für die Ausführung in anderen Umgebungen müssen Standardanmeldedaten für Anwendungen eingerichtet werden.

Produktionsüberwachung über die Operations Suite von Google Cloud

Nachdem ein Ablauf bereitgestellt wurde, rufen Sie die Operations-Suite von Google Cloud auf und wählen Sie Ihr Projekt aus.

Logs und Traces

Suchen Sie im seitlichen Menü nach „Logging“ und klicken Sie auf „Log-Explorer“.

Sie sehen alle Protokolle, die mit Ihrem bereitgestellten Ablauf verknüpft sind, einschließlich console.log(). Logs mit dem Präfix [genkit] sind Genkit-interne Logs, die Informationen enthalten, die für die Fehlerbehebung interessant sein können. Genkit-Protokolle im Format Config[...] enthalten beispielsweise Metadaten wie die Temperatur und TopK-Werte für bestimmte LLM-Inferenzen. Protokolle im Format Output[...] enthalten LLM-Antworten, während Input[...]-Protokolle die Prompts enthalten. Cloud Logging verfügt über robuste ACLs, die eine detaillierte Kontrolle über sensible Logs ermöglichen.

Für bestimmte Logzeilen können Sie die entsprechenden Traces aufrufen, indem Sie auf das Dreipunkt-Menü  klicken und „In Trace-Details ansehen“ auswählen.

Daraufhin wird ein Vorschaubereich für den Trace geöffnet, in dem Sie einen schnellen Überblick über die Details des Traces erhalten. Wenn Sie alle Details sehen möchten, klicken Sie rechts oben im Bereich auf den Link „Im Trace ansehen“.

Das wichtigste Navigationselement in Cloud Trace ist das Streudiagramm für Traces. Er enthält alle erfassten Traces in einem bestimmten Zeitraum.

Wenn Sie auf einen Datenpunkt klicken, werden die zugehörigen Details unter dem Streudiagramm angezeigt.

Die Detailansicht enthält die Flussform mit allen Schritten und wichtigen Zeitangaben. In Cloud Trace können alle Logs, die mit einem bestimmten Trace verknüpft sind, in dieser Ansicht verschachtelt werden. Wählen Sie im Drop-down-Menü „Protokolle und Ereignisse“ die Option „Maximal maximiert anzeigen“ aus.

Die resultierende Ansicht ermöglicht eine detaillierte Untersuchung von Logs im Kontext des Trace, einschließlich Aufforderungen und LLM-Antworten.

Messwerte

Wenn Sie sich alle Messwerte ansehen möchten, die Genkit exportiert, wählen Sie im Seitenmenü „Logging“ (Protokollierung) und dann „Metrics management“ (Messwertverwaltung) aus.

Die Console zur Verwaltung von Messwerten enthält eine tabellarische Ansicht aller erfassten Messwerte, einschließlich derer, die sich auf Cloud Run und die zugehörigen Umgebungen beziehen. Wenn Sie auf die Option „Workload“ klicken, wird eine Liste mit den von Genkit erfassten Messwerten angezeigt. Alle Messwerte mit dem Präfix genkit sind interne Genkit-Messwerte.

Mit Genkit werden mehrere Messwertkategorien erfasst, darunter Messwerte auf Fluss-, Aktions- und Generierungsebene. Jeder Messwert hat mehrere nützliche Dimensionen, die eine robuste Filterung und Gruppierung ermöglichen.

Zu den gängigen Dimensionen gehören:

  • flow_name – der Name des Ablaufs auf oberster Ebene.
  • flow_path: Der Span und sein übergeordneter Span sind bis zum Haupt-Span verkettet.
  • error_code: Bei einem Fehler der entsprechende Fehlercode.
  • error_message – bei einem Fehler die entsprechende Fehlermeldung.
  • model: Der Name des Modells.
  • temperature – der Wert der Inferenztemperatur.
  • topK: Der Wert für die Top-K-Inferenz.
  • topP – der InferenztopP-Wert

Messwerte auf Ablaufebene

Name Dimensionen
genkit/flow/requests flow_name, error_code, error_message
genkit/flow/latency flow_name

Messwerte auf Aktionsebene

Name Dimensionen
genkit/action/requests flow_name, error_code, error_message
genkit/action/latency flow_name

Messwerte auf Generierungsebene

Name Dimensionen
genkit/ai/generate flow_path, model, temperature, topK, topP, error_code, error_message
genkit/ai/generate/input_tokens flow_path, model, temperature, topK, topP
Genkit/AI/generate/output_tokens flow_path, model, temperature, topK, topP
genkit/ai/generate/input_characters flow_path, model, temperature, topK, topP
genkit/ai/generate/output_characters Flow_path, Modell, Temperatur, TopK, TopP
genkit/ai/generate/input_images Flow_path, Modell, Temperatur, TopK, TopP
genkit/ai/generate/output_images flow_path, model, temperature, topK, topP
genkit/ai/generate/latency flow_path, model, temperature, topK, topP, error_code, error_message

Messwerte können über den Metrics Explorer visualisiert werden. Wählen Sie im seitlichen Menü „Logging“ aus und klicken Sie auf „Metrics Explorer“.

Wählen Sie einen Messwert aus, indem Sie auf das Drop-down-Menü „Messwert auswählen“ klicken, „Generic Node“, „Genkit“ und einen Messwert auswählen.

Die Visualisierung des Messwerts hängt von seinem Typ ab (Zähler, Histogramm usw.). Der Metrics Explorer bietet robuste Aggregations- und Abfragefunktionen, mit denen sich Messwerte nach verschiedenen Dimensionen grafisch darstellen lassen.

Telemetrieverzögerung

Es kann etwas dauern, bis die Telemetriedaten für eine bestimmte Ausführung eines Ablaufs in der Operations Suite von Google Cloud angezeigt werden. In den meisten Fällen beträgt diese Verzögerung weniger als eine Minute.

Kontingente und Limits

Es gibt mehrere Kontingente, die Sie beachten sollten:

Kosten

Cloud Logging, Cloud Trace und Cloud Monitoring bieten großzügige kostenlose Stufen. Spezifische Preise finden Sie unter den folgenden Links: