Telemetrieerfassung

Das Firebase-Telemetrie-Plug-in exportiert eine Kombination aus Messwerten, Traces und Protokollen in Google Cloud Observability. In diesem Dokument wird beschrieben, welche Messwerte, Trace-Attribute und Protokolle erfasst werden und welche Latenz, Kontingente und Kosten zu erwarten sind.

Telemetrieverzögerung

Es kann zu einer kurzen Verzögerung kommen, bis die Telemetriedaten einer bestimmten Aufrufe in Firebase verfügbar sind. Das hängt vom Exportintervall ab (standardmäßig 5 Minuten).

Kontingente und Limits

Es gibt mehrere Kontingente, die Sie beachten sollten:

Kosten

Cloud Logging, Cloud Trace und Cloud Monitoring sind in großzügigen kostenlosen Stufen verfügbar. Spezifische Preise finden Sie unter den folgenden Links:

Messwerte

Das Firebase-Telemetrie-Plug-in erfasst eine Reihe verschiedener Messwerte, um die verschiedenen Genkit-Aktionstypen zu unterstützen, die in den folgenden Abschnitten beschrieben werden.

Messwerte zu Funktionen

Funktionen sind der Einstiegspunkt auf oberster Ebene in Ihren Genkit-Code. In den meisten Fällen ist das ein Ablauf. Andernfalls ist dies die oberste Spanne in einem Trace.

Name Typ Beschreibung
genkit/feature/requests Zähler Anzahl von Anfragen
genkit/feature/latency Histogramm Ausführungslatenz in ms

Jeder Messwert für Funktionen enthält die folgenden Dimensionen:

Name Beschreibung
Name Der Name der Funktion. In den meisten Fällen ist dies der Genkit-Flow der obersten Ebene.
Status „success“ oder „failure“, je nachdem, ob die Funktionsanfrage erfolgreich war
Fehler Nur festgelegt, wenn status=failure. Enthält den Fehlertyp, der den Fehler verursacht hat
source Die Genkit-Quellsprache. z. B. 'ts'
sourceVersion Die Genkit-Framework-Version

Aktionsmesswerte

Aktionen stellen einen generischen Ausführungsschritt in Genkit dar. Für jeden dieser Schritte werden die folgenden Messwerte erfasst:

Name Typ Beschreibung
genkit/action/requests Zähler Häufigkeit, mit der diese Aktion ausgeführt wurde
genkit/action/latency Histogramm Ausführungslatenz in ms

Jeder Messwert für Aktionen enthält die folgenden Dimensionen:

Name Beschreibung
Name Der Name der Aktion
featureName Der Name der ausgeführten übergeordneten Funktion
Pfad Der Ausführungspfad vom Stamm des Features zu dieser Aktion. Beispiel: '/myFeature/parentAction/thisAction'
Status „success“ oder „failure“, je nachdem, ob die Aktion erfolgreich war
Fehler Nur festgelegt, wenn status=failure. Enthält den Fehlertyp, der den Fehler verursacht hat
source Die Genkit-Quellsprache. z. B. 'ts'
sourceVersion Die Genkit-Framework-Version

Messwerte generieren

Das sind spezielle Aktionsmesswerte, die sich auf Aktionen beziehen, die mit einem Modell interagieren. Zusätzlich zu Anfragen und Latenz werden auch Eingabe und Ausgabe erfasst. Dabei werden modellspezifische Dimensionen verwendet, die das Debuggen und die Konfigurationsoptimierung erleichtern.

Name Typ Beschreibung
genkit/ai/generate/requests Zähler Häufigkeit, mit der dieses Modell aufgerufen wurde
genkit/ai/generate/latency Histogramm Ausführungslatenz in ms
genkit/ai/generate/input/tokens Zähler Eingabetokens
genkit/ai/generate/output/tokens Zähler Ausgabetokens
genkit/ai/generate/input/characters Zähler Eingabezeichen
genkit/ai/generate/output/characters Zähler Ausgabezeichen
genkit/ai/generate/input/images Zähler Eingabebilder
genkit/ai/generate/output/images Zähler Ausgabebilder
genkit/ai/generate/input/audio Zähler Audiodateien eingeben
genkit/ai/generate/output/audio Zähler Audiodateien ausgeben

Jeder generierte Messwert enthält die folgenden Dimensionen:

Name Beschreibung
modelName Der Name des Modells
featureName Der Name der ausgeführten übergeordneten Funktion
Pfad Der Ausführungspfad vom Stamm des Features zu dieser Aktion. Beispiel: '/myFeature/parentAction/thisAction'
latencyMs Die vom Modell benötigte Antwortzeit
Status „success“ oder „failure“, je nachdem, ob die Funktionsanfrage erfolgreich war
Fehler Nur festgelegt, wenn status=failure. Enthält den Fehlertyp, der den Fehler verursacht hat
source Die Genkit-Quellsprache. z. B. 'ts'
sourceVersion Die Genkit-Framework-Version

Traces

Alle Genkit-Aktionen werden automatisch instrumentiert, um detaillierte Traces für Ihre KI-Funktionen bereitzustellen. Lokal sind Traces in der Entwickler-Benutzeroberfläche sichtbar. Aktivieren Sie für bereitgestellte Apps Firebase Genkit Monitoring, um dieselben Informationen zu erhalten.

In den folgenden Abschnitten wird beschrieben, welche Trace-Attribute Sie je nach Genkit-Aktion für einen bestimmten Span im Trace erwarten können.

Stamm-Spans

Stamm-Späne haben spezielle Attribute, die helfen, die Statusattribute für den gesamten Trace von denen einer einzelnen Spanne zu unterscheiden.

Attributname Beschreibung
genkit/feature Der Name der ausgeführten übergeordneten Funktion
genkit/isRoot „Wahr“, wenn diese Span die Stammspan ist
genkit/rootState Der Status der Gesamtausführung als success oder error. Dies bedeutet nicht, dass dieser Schritt fehlgeschlagen ist.

Flow

Attributname Beschreibung
genkit/input Die Eingabe für den Ablauf. Aufgrund von Größenbeschränkungen für Trace-Attribute ist dies immer <redacted>.
genkit/metadata/subtype Der Typ der Genkit-Aktion. Für Abläufe ist das flow.
genkit/name Der Name dieser Genkit-Aktion. In diesem Fall der Name des Ablaufs
genkit/output Die im Ablauf generierte Ausgabe. Aufgrund von Größenbeschränkungen für Trace-Attribute ist dies immer <redacted>.
genkit/path Der vollqualifizierte Ausführungspfad, der zu diesem Schritt im Trace geführt hat, einschließlich Typinformationen.
genkit/state Der Status der Ausführung dieser Spanne als success oder error.
genkit/type Der Typ des Genkit-Elements, der dieser Spanne entspricht. Bei Abläufen ist das action.

Util

Attributname Beschreibung
genkit/input Die Eingabe für das Dienstprogramm. Aufgrund von Größenbeschränkungen für Trace-Attribute ist dies immer <redacted>.
genkit/name Der Name dieser Genkit-Aktion. In diesem Fall der Name des Ablaufs
genkit/output Die im util generierte Ausgabe. Aufgrund von Größenbeschränkungen für Trace-Attribute ist dies immer <redacted>.
genkit/path Der vollqualifizierte Ausführungspfad, der zu diesem Schritt im Trace geführt hat, einschließlich Typinformationen.
genkit/state Der Status der Ausführung dieser Spanne als success oder error.
genkit/type Der Typ des Genkit-Elements, der dieser Spanne entspricht. Bei Abläufen ist das util.

Modell

Attributname Beschreibung
genkit/input Die Eingabe für das Modell. Aufgrund von Größenbeschränkungen für Trace-Attribute ist dies immer <redacted>.
genkit/metadata/subtype Der Typ der Genkit-Aktion. Bei Modellen ist das model.
genkit/model Der Name des Modells.
genkit/name Der Name dieser Genkit-Aktion. In diesem Fall der Name des Modells.
genkit/output Die vom Modell generierte Ausgabe. Aufgrund von Größenbeschränkungen für Trace-Attribute ist dies immer <redacted>.
genkit/path Der vollqualifizierte Ausführungspfad, der zu diesem Schritt im Trace geführt hat, einschließlich Typinformationen.
genkit/state Der Status der Ausführung dieser Spanne als success oder error.
genkit/type Der Typ des Genkit-Elements, der dieser Spanne entspricht. Bei Abläufen ist das action.

Tool

Attributname Beschreibung
genkit/input Die Eingabe für das Modell. Aufgrund von Größenbeschränkungen für Trace-Attribute ist dies immer <redacted>.
genkit/metadata/subtype Der Typ der Genkit-Aktion. Bei Tools ist das tool.
genkit/name Der Name dieser Genkit-Aktion. In diesem Fall der Name des Modells.
genkit/output Die vom Modell generierte Ausgabe. Aufgrund von Größenbeschränkungen für Trace-Attribute ist dies immer <redacted>.
genkit/path Der vollqualifizierte Ausführungspfad, der zu diesem Schritt im Trace geführt hat, einschließlich Typinformationen.
genkit/state Der Status der Ausführung dieser Spanne als success oder error.
genkit/type Der Typ des Genkit-Elements, der dieser Spanne entspricht. Bei Abläufen ist das action.

Logs

Bei bereitgestellten Apps mit Firebase Genkit Monitoring werden Protokolle verwendet, um Eingabe-, Ausgabe- und Konfigurationsmetadaten zu erfassen, die detaillierte Informationen zu jedem Schritt Ihrer KI-Funktion enthalten.

Alle Protokolle enthalten die folgenden gemeinsamen Metadatenfelder:

Feldname Beschreibung
insertId Eindeutige ID für den Protokolleintrag
jsonPayload Container für variable Informationen, die für jeden Protokolltyp eindeutig sind
Labels {module: genkit}
logName projects/weather-gen-test-next/logs/genkit_log
receivedTimestamp Zeitpunkt, zu dem das Protokoll von Cloud empfangen wurde
Ressource Informationen zur Quelle des Logs, einschließlich Bereitstellungsinformationen (Region und projectId)
die Ausprägung Die geschriebene Protokollebene. LogSeverity in Google Cloud ansehen
spanId Kennung für den Span, für den dieses Protokoll erstellt wurde
timestamp Zeitpunkt, zu dem der Client eine Nachricht protokolliert hat
Trace Kennung für den Trace im Format projects/<project-id>/traces/<trace-id>
traceSampled Boolescher Wert, der angibt, ob die Trace-Daten gesampled wurden. Es werden keine Logstichproben erstellt.

Für jeden Protokolltyp gibt es eine andere JSON-Nutzlast, die in den einzelnen Abschnitten beschrieben wird.

Eingabe

JSON-Nutzlast:

Feldname Beschreibung
Nachricht [genkit] Input[<path>, <featureName>] einschließlich (message X of N) für mehrteilige Nachrichten
Metadaten Zusätzlicher Kontext, einschließlich der an die Aktion gesendeten Eingabenachricht

Metadaten:

Feldname Beschreibung
Inhalte Der Inhalt der Eingabenachricht, die an diese Genkit-Aktion gesendet wurde
featureName Der Name des Genkit-Flows, der Genkit-Aktion, des Genkit-Tools, des Genkit-Dienstprogramms oder des Genkit-Hilfsprogramms.
messageIndex * Index, der die Reihenfolge der Nachrichten für Eingaben angibt, die mehrere Nachrichten enthalten. Bei einzelnen Nachrichten ist dieser Wert immer 0.
model * Modellname.
Pfad Der Ausführungspfad, über den dieses Protokoll im Format step1 > step2 > step3 generiert wurde
partIndex * Index, der die Reihenfolge der Teile innerhalb einer Nachricht für mehrteilige Nachrichten angibt. Das ist typisch, wenn Text und Bilder in einer einzigen Eingabe kombiniert werden.
qualifiedPath Der Ausführungspfad, über den dieses Protokoll generiert wurde, einschließlich Typinformationen im Format: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalMessages * Die Gesamtzahl der Nachrichten für diese Eingabe. Bei einzelnen Nachrichten ist das immer „1“.
totalParts * Die Gesamtzahl der Teile dieser Nachricht. Bei Nachrichten mit nur einem Teil ist dies immer „1“.

(*) Mit einem Stern markierte Elemente sind nur in Eingabeprotokollen für Modellinteraktionen vorhanden.

Ausgabe

JSON-Nutzlast:

Feldname Beschreibung
Nachricht [genkit] Output[<path>, <featureName>] einschließlich (message X of N) für mehrteilige Nachrichten
Metadaten Zusätzlicher Kontext, einschließlich der an die Aktion gesendeten Eingabenachricht

Metadaten:

Feldname Beschreibung
candidateIndex * (verworfen) Index, der die Reihenfolge der Kandidaten für Ausgaben angibt, die mehrere Kandidaten enthalten. Bei Protokollen mit einzelnen Kandidaten ist dieser Wert immer 0.
Inhalte Die von der Genkit-Aktion generierte Ausgabenachricht
featureName Der Name des Genkit-Flows, der Genkit-Aktion, des Genkit-Tools, des Genkit-Dienstprogramms oder des Genkit-Hilfsprogramms.
messageIndex * Index, der die Reihenfolge der Nachrichten für Eingaben angibt, die mehrere Nachrichten enthalten. Bei einzelnen Nachrichten ist dieser Wert immer 0.
model * Modellname.
Pfad Der Ausführungspfad, der dieses Protokoll im Format „Schritt1 > Schritt2 > Schritt3“ generiert hat
partIndex * Index, der die Reihenfolge der Teile innerhalb einer Nachricht für mehrteilige Nachrichten angibt. Das ist typisch, wenn Text und Bilder in einer einzigen Ausgabe kombiniert werden.
qualifiedPath Der Ausführungspfad, über den dieses Protokoll generiert wurde, einschließlich Typinformationen im Format: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalCandidates * (verworfen) Gesamtzahl der Kandidaten, die als Ausgabe generiert wurden. Bei Nachrichten mit einem einzigen Kandidaten ist dies immer „1“.
totalParts * Die Gesamtzahl der Teile dieser Nachricht. Bei Nachrichten mit nur einem Teil ist dies immer „1“.

(*) Mit einem Stern markierte Elemente sind nur in Ausgabeprotokollen für Modellinteraktionen vorhanden.

Konfiguration

JSON-Nutzlast:

Feldname Beschreibung
Nachricht [genkit] Config[<path>, <featureName>]
Metadaten Zusätzlicher Kontext, einschließlich der an die Aktion gesendeten Eingabenachricht

Metadaten:

Feldname Beschreibung
featureName Der Name des Genkit-Flows, der Genkit-Aktion, des Genkit-Tools, des Genkit-Dienstprogramms oder des Genkit-Hilfsprogramms.
Modell Modellname.
Pfad Der Ausführungspfad, der dieses Protokoll im Format „Schritt1 > Schritt2 > Schritt3“ generiert hat
qualifiedPath Der Ausführungspfad, über den dieses Protokoll generiert wurde, einschließlich Typinformationen im Format: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
source Die verwendete Genkit-Bibliothekssprache. Dieser Wert ist immer auf „ts“ festgelegt, da es sich um die einzige unterstützte Sprache handelt.
sourceVersion Die Version der Genkit-Bibliothek.
Temperatur Verwendete Modelltemperatur.

Pfade

JSON-Nutzlast:

Feldname Beschreibung
Nachricht [genkit] Paths[<path>, <featureName>]
Metadaten Zusätzlicher Kontext, einschließlich der an die Aktion gesendeten Eingabenachricht

Metadaten:

Feldname Beschreibung
flowName Der Name des Genkit-Flows, der Genkit-Aktion, des Genkit-Tools, des Genkit-Dienstprogramms oder des Genkit-Hilfsprogramms.
Pfade Ein Array mit allen Ausführungspfaden für die erfassten Bereiche.