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. |