Raccolta della telemetria

Il plug-in di telemetria di Firebase esporta una combinazione di metriche, tracce e log in Google Cloud Observability. Questo documento descrive in dettaglio quali metriche, attributi traccia e log verranno raccolti e cosa puoi aspettarti in termini di latenza, quote e costi.

Ritardo della telemetria

Potrebbe esserci un leggero ritardo prima che la telemetria di una determinata chiamata sia disponibile in Firebase. Questo dipende dall'intervallo di esportazione (5 minuti per impostazione predefinita).

Quote e limiti

Esistono diverse quote da tenere presenti:

Costo

Cloud Logging, Cloud Trace e Cloud Monitoring dispongono di generosi livelli senza costi. I prezzi specifici sono disponibili ai seguenti link:

Metriche

Il plug-in di telemetria di Firebase raccoglie una serie di metriche diverse per supportare i vari tipi di azioni Genkit descritti nelle sezioni seguenti.

Metriche delle funzionalità

Le funzionalità sono il punto di contatto di primo livello per il codice Genkit. Nella maggior parte dei casi, si tratta di un flusso. In caso contrario, sarà l'intervallo più alto in una traccia.

Nome Tipo Descrizione
genkit/feature/requests Contatore Numero di richieste
genkit/feature/latency Istogramma Latenza di esecuzione in ms

Ogni metrica delle funzionalità contiene le seguenti dimensioni:

Nome Descrizione
nome Il nome della funzionalità. Nella maggior parte dei casi, si tratta del flusso Genkit di primo livello
stato "success" o "failure" a seconda che la richiesta di funzionalità sia andata a buon fine o meno
errore Impostato solo quando status=failure. Contiene il tipo di errore che ha causato l'errore
origine La lingua di origine di Genkit. Ad es. 'ts'
sourceVersion La versione del framework Genkit

Metriche relative alle azioni

Le azioni rappresentano un passaggio generico di esecuzione all'interno di Genkit. Per ognuno di questi passaggi vengono monitorate le seguenti metriche:

Nome Tipo Descrizione
genkit/action/requests Contatore Numero di volte in cui questa azione è stata eseguita
genkit/action/latency Istogramma Latenza di esecuzione in ms

Ogni metrica delle azioni contiene le seguenti dimensioni:

Nome Descrizione
nome Il nome dell'azione
featureName Il nome della funzionalità principale in esecuzione
percorso Il percorso di esecuzione dalla radice della funzionalità a questa azione. Ad es. '/myFeature/parentAction/thisAction'
stato "success" o "failure" a seconda che l'azione sia riuscita o meno
errore Impostato solo quando status=failure. Contiene il tipo di errore che ha causato l'errore
origine La lingua di origine di Genkit. Ad es. 'ts'
sourceVersion La versione del framework Genkit

Generare metriche

Si tratta di metriche di azioni speciali relative alle azioni che interagiscono con un modello. Oltre alle richieste e alla latenza, vengono monitorati anche input e output, con dimensioni specifiche del modello che semplificano il debug e la regolazione della configurazione.

Nome Tipo Descrizione
genkit/ai/generate/requests Contatore Numero di volte in cui questo modello è stato chiamato
genkit/ai/generate/latency Istogramma Latenza di esecuzione in ms
genkit/ai/generate/input/tokens Contatore Token di input
genkit/ai/generate/output/tokens Contatore Token di output
genkit/ai/generate/input/characters Contatore Caratteri dell'input
genkit/ai/generate/output/characters Contatore Caratteri di output
genkit/ai/generate/input/images Contatore Immagini di input
genkit/ai/generate/output/images Contatore Immagini di output
genkit/ai/generate/input/audio Contatore Inserire file audio
genkit/ai/generate/output/audio Contatore File audio di output

Ogni metrica generata contiene le seguenti dimensioni:

Nome Descrizione
modelName Il nome del modello
featureName Il nome della funzionalità principale in esecuzione
percorso Il percorso di esecuzione dalla radice della funzionalità a questa azione. Ad es. '/myFeature/parentAction/thisAction'
latencyMs Il tempo di risposta del modello
stato "success" o "failure" a seconda che la richiesta di funzionalità sia andata a buon fine o meno
errore Impostato solo quando status=failure. Contiene il tipo di errore che ha causato l'errore
origine La lingua di origine di Genkit. Ad es. 'ts'
sourceVersion La versione del framework Genkit

Tracce

Tutte le azioni di Genkit vengono instrumentate automaticamente per fornire tracce dettagliate per le tue funzionalità di IA. Localmente, le tracce sono visibili nell'interfaccia utente per gli sviluppatori. Per le app di cui è stato eseguito il deployment, attiva il monitoraggio di Firebase Genkit per ottenere lo stesso livello di visibilità.

Le sezioni seguenti descrivono gli attributi della traccia che puoi aspettarti in base al tipo di azione Genkit per un determinato intervallo della traccia.

Intervalli principali

Gli elementi radice hanno attributi speciali che consentono di distinguere gli attributi di stato per l'intera traccia rispetto a un singolo elemento.

Nome attributo Descrizione
genkit/feature Il nome della funzionalità principale in esecuzione
genkit/isRoot Contrassegnato come true se questo span è lo span principale
genkit/rootState Lo stato dell'esecuzione complessiva come success o error. Ciò non indica che questo passaggio non sia riuscito in particolare.

Flusso

Nome attributo Descrizione
genkit/input L'input del flusso. Il valore sarà sempre <redacted> a causa dei limiti di dimensione degli attributi traccia.
genkit/metadata/subtype Il tipo di azione Genkit. Per i flussi sarà flow.
genkit/name Il nome di questa azione Genkit. In questo caso il nome del flusso
genkit/output L'output generato nel flusso. Il valore sarà sempre <redacted> a causa dei limiti di dimensione degli attributi traccia.
genkit/path Il percorso di esecuzione completo che porta a questo passaggio nella traccia, incluse le informazioni sul tipo.
genkit/state Lo stato di esecuzione di questo intervallo come success o error.
genkit/type Il tipo di primitiva Genkit corrispondente a questo intervallo. Per i flussi, sarà action.

Util

Nome attributo Descrizione
genkit/input L'input per lo strumento. Il valore sarà sempre <redacted> a causa dei limiti di dimensione degli attributi traccia.
genkit/name Il nome di questa azione Genkit. In questo caso il nome del flusso
genkit/output L'output generato nell'util. Il valore sarà sempre <redacted> a causa dei limiti di dimensione degli attributi traccia.
genkit/path Il percorso di esecuzione completo che porta a questo passaggio nella traccia, incluse le informazioni sul tipo.
genkit/state Lo stato di esecuzione di questo intervallo come success o error.
genkit/type Il tipo di primitiva Genkit corrispondente a questo intervallo. Per i flussi, sarà util.

Modello

Nome attributo Descrizione
genkit/input L'input del modello. Il valore sarà sempre <redacted> a causa dei limiti di dimensione degli attributi traccia.
genkit/metadata/subtype Il tipo di azione Genkit. Per i modelli sarà model.
genkit/model Il nome del modello.
genkit/name Il nome di questa azione Genkit. In questo caso il nome del modello.
genkit/output L'output generato dal modello. Il valore sarà sempre <redacted> a causa dei limiti di dimensione degli attributi traccia.
genkit/path Il percorso di esecuzione completo che porta a questo passaggio nella traccia, incluse le informazioni sul tipo.
genkit/state Lo stato di esecuzione di questo intervallo come success o error.
genkit/type Il tipo di primitiva Genkit corrispondente a questo intervallo. Per i flussi, sarà action.

Strumento

Nome attributo Descrizione
genkit/input L'input del modello. Il valore sarà sempre <redacted> a causa dei limiti di dimensione degli attributi traccia.
genkit/metadata/subtype Il tipo di azione Genkit. Per gli strumenti sarà tool.
genkit/name Il nome di questa azione Genkit. In questo caso il nome del modello.
genkit/output L'output generato dal modello. Il valore sarà sempre <redacted> a causa dei limiti di dimensione degli attributi traccia.
genkit/path Il percorso di esecuzione completo che porta a questo passaggio nella traccia, incluse le informazioni sul tipo.
genkit/state Lo stato di esecuzione di questo intervallo come success o error.
genkit/type Il tipo di primitiva Genkit corrispondente a questo intervallo. Per i flussi, sarà action.

Log

Per le app di cui è stato eseguito il deployment con il monitoraggio di Firebase Genkit, i log vengono utilizzati per acquisire metadati di input, output e configurazione che forniscono dettagli dettagliati su ogni passaggio della funzionalità di IA.

Tutti i log includeranno i seguenti campi dei metadati condivisi:

Nome campo Descrizione
insertId ID univoco per la voce di log
jsonPayload Contenitore per informazioni sulle variabili univoche per ogni tipo di log
etichette {module: genkit}
logName projects/weather-gen-test-next/logs/genkit_log
receivedTimestamp Ora in cui il log è stato ricevuto da Cloud
risorsa Informazioni sull'origine del log, tra cui la regione delle informazioni di deployment e projectId
gravità Il livello di log scritto. Consulta LogSeverity di Cloud
spanId Identificatore dell'intervallo che ha creato questo log
timestamp Ora in cui il cliente ha registrato un messaggio
traccia Identificatore per la traccia del formato projects/<project-id>/traces/<trace-id>
traceSampled Valore booleano che indica se la traccia è stata campionata. I log non vengono campionati.

Ogni tipo di log avrà un payload JSON diverso descritto in ogni sezione.

Input

Payload JSON:

Nome campo Descrizione
messaggio [genkit] Input[<path>, <featureName>], incluso (message X of N) per i messaggi suddivisi in più parti
metadati Contesto aggiuntivo, incluso il messaggio di input inviato all'azione

Metadati:

Nome campo Descrizione
contenuti I contenuti del messaggio di input inviati a questa azione Genkit
featureName Il nome del flusso, dell'azione, dello strumento, dell'utilità o dell'helper Genkit.
messageIndex * Indice che indica l'ordine dei messaggi per gli input che contengono più messaggi. Per i singoli messaggi, il valore sarà sempre 0.
model * Nome del modello.
percorso Il percorso di esecuzione che ha generato questo log del formato step1 > step2 > step3
partIndex * Indice che indica l'ordine delle parti all'interno di un messaggio per i messaggi suddivisi in più parti. Questo accade spesso quando si combinano testo e immagini in un unico input.
qualifiedPath Il percorso di esecuzione che ha generato questo log, incluse le informazioni sul tipo di formato: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalMessages * Il numero totale di messaggi per questo input. Per i singoli messaggi, il valore sarà sempre 1.
totalParts * Numero totale di parti per questo messaggio. Per i messaggi composti da una sola parte, il valore sarà sempre 1.

(*) Gli elementi contrassegnati con un asterisco sono presenti solo nei log di input per le interazioni con il modello.

Output

Payload JSON:

Nome campo Descrizione
messaggio [genkit] Output[<path>, <featureName>], incluso (message X of N) per i messaggi suddivisi in più parti
metadati Contesto aggiuntivo, incluso il messaggio di input inviato all'azione

Metadati:

Nome campo Descrizione
candidateIndex * (deprecato) Indice che indica l'ordine dei candidati per gli output che contengono più candidati. Per i log con singoli candidati, questo valore sarà sempre 0.
contenuti Il messaggio di output generato dall'azione Genkit
featureName Il nome del flusso, dell'azione, dello strumento, dell'utilità o dell'helper Genkit.
messageIndex * Indice che indica l'ordine dei messaggi per gli input che contengono più messaggi. Per i singoli messaggi, il valore sarà sempre 0.
model * Nome del modello.
percorso Il percorso di esecuzione che ha generato questo log del formato "passaggio1 > passaggio2 > passaggio3"
partIndex * Indice che indica l'ordine delle parti all'interno di un messaggio per i messaggi suddivisi in più parti. Questo accade di solito quando si combinano testo e immagini in un unico output.
qualifiedPath Il percorso di esecuzione che ha generato questo log, incluse le informazioni sul tipo di formato: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalCandidates * (deprecato) Numero totale di candidati generati come output. Per i messaggi con un solo candidato, il valore sarà sempre 1.
totalParts * Numero totale di parti per questo messaggio. Per i messaggi composti da una sola parte, il valore sarà sempre 1.

(*) Gli elementi contrassegnati con un asterisco sono presenti solo nei log di output per le interazioni con il modello.

Configurazione

Payload JSON:

Nome campo Descrizione
messaggio [genkit] Config[<path>, <featureName>]
metadati Contesto aggiuntivo, incluso il messaggio di input inviato all'azione

Metadati:

Nome campo Descrizione
featureName Il nome del flusso, dell'azione, dello strumento, dell'utilità o dell'helper Genkit.
modello Nome del modello.
percorso Il percorso di esecuzione che ha generato questo log del formato "passaggio1 > passaggio2 > passaggio3"
qualifiedPath Il percorso di esecuzione che ha generato questo log, incluse le informazioni sul tipo di formato: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
origine Il linguaggio della libreria Genkit utilizzato. Questo valore sarà sempre impostato su "ts", in quanto è l'unica lingua supportata.
sourceVersion La versione della libreria Genkit.
temperatura Temperatura del modello utilizzata.

Percorsi

Payload JSON:

Nome campo Descrizione
messaggio [genkit] Paths[<path>, <featureName>]
metadati Contesto aggiuntivo, incluso il messaggio di input inviato all'azione

Metadati:

Nome campo Descrizione
flowName Il nome del flusso, dell'azione, dello strumento, dell'utilità o dell'helper Genkit.
percorsi Un array contenente tutti i percorsi di esecuzione per gli intervalli raccolti.