Collecte de télémétrie

Le plug-in de télémétrie Firebase exporte une combinaison de métriques, de traces et de journaux vers Google Cloud Observability. Ce document décrit les métriques, les attributs de trace et les journaux qui seront collectés, ainsi que ce à quoi vous pouvez vous attendre en termes de latence, de quotas et de coût.

Délai de télémétrie

Un léger délai peut s'écouler avant que la télémétrie d'une invocation donnée ne soit disponible dans Firebase. Cela dépend de l'intervalle d'exportation (cinq minutes par défaut).

Quotas et limites

Plusieurs quotas sont importants à prendre en compte:

Coût

Cloud Logging, Cloud Trace et Cloud Monitoring proposent des niveaux sans frais généreux. Vous trouverez les tarifs spécifiques sur les liens suivants:

Métriques

Le plug-in de télémétrie Firebase collecte un certain nombre de métriques différentes pour prendre en charge les différents types d'actions Genkit décrits dans les sections suivantes.

Métriques des fonctionnalités

Les fonctionnalités sont le point d'entrée de premier niveau de votre code Genkit. Dans la plupart des cas, il s'agit d'un flux. Sinon, il s'agit de la partie supérieure d'une trace.

Nom Type Description
genkit/feature/requests Compteur Nombre de requêtes
genkit/feature/latency Histogramme Latence d'exécution en ms

Chaque métrique d'éléments géographiques contient les dimensions suivantes:

Nom Description
nom Nom de la fonctionnalité. Dans la plupart des cas, il s'agit du flux Genkit de premier niveau.
état "success" ou "failure", selon que la demande de fonctionnalité a réussi ou non
erreur Défini uniquement lorsque status=failure. Indique le type d'erreur à l'origine de l'échec
source Langue source de Genkit. Par exemple, 'ts'
sourceVersion Version du framework Genkit

Métriques d'action

Les actions représentent une étape d'exécution générique dans Genkit. Les métriques suivantes seront suivies pour chacune de ces étapes:

Nom Type Description
genkit/action/requests Compteur Nombre de fois où cette action a été exécutée
genkit/action/latency Histogramme Latence d'exécution en ms

Chaque métrique d'action contient les dimensions suivantes:

Nom Description
nom Nom de l'action
featureName Nom de la fonctionnalité parente en cours d'exécution
chemin d'accès Chemin d'exécution depuis la racine de l'élément géographique jusqu'à cette action. Exemple : '/myFeature/parentAction/thisAction'
état "success" ou "failure", selon que l'action a réussi ou non
erreur Défini uniquement lorsque status=failure. Indique le type d'erreur à l'origine de l'échec
source Langue source de Genkit. Par exemple, 'ts'
sourceVersion Version du framework Genkit

Générer des métriques

Il s'agit de métriques d'action spéciales liées aux actions qui interagissent avec un modèle. En plus des requêtes et de la latence, les entrées et les sorties sont également suivies, avec des dimensions spécifiques au modèle qui facilitent le débogage et le réglage de la configuration.

Nom Type Description
genkit/ai/generate/requests Compteur Nombre de fois où ce modèle a été appelé
genkit/ai/generate/latency Histogramme Latence d'exécution en ms
genkit/ai/generate/input/tokens Compteur Jetons d'entrée
genkit/ai/generate/output/tokens Compteur Jetons de sortie
genkit/ai/generate/input/characters Compteur Caractères d'entrée
genkit/ai/generate/output/characters Compteur Caractères de sortie
genkit/ai/generate/input/images Compteur Images d'entrée
genkit/ai/generate/output/images Compteur Images de sortie
genkit/ai/generate/input/audio Compteur Fichiers audio d'entrée
genkit/ai/generate/output/audio Compteur Fichiers audio de sortie

Chaque métrique de génération contient les dimensions suivantes:

Nom Description
modelName Nom du modèle
featureName Nom de la fonctionnalité parente en cours d'exécution
chemin d'accès Chemin d'exécution depuis la racine de l'élément géographique jusqu'à cette action. Exemple : '/myFeature/parentAction/thisAction'
latencyMs Temps de réponse du modèle
état "success" ou "failure", selon que la demande de fonctionnalité a réussi ou non
erreur Défini uniquement lorsque status=failure. Indique le type d'erreur à l'origine de l'échec
source Langue source de Genkit. Par exemple, 'ts'
sourceVersion Version du framework Genkit

Traces

Toutes les actions Genkit sont automatiquement instrumentées pour fournir des traces détaillées de vos fonctionnalités d'IA. Localement, les traces sont visibles dans l'interface utilisateur du développeur. Pour les applications déployées, activez Firebase Genkit Monitoring pour obtenir le même niveau de visibilité.

Les sections suivantes décrivent les attributs de trace que vous pouvez attendre en fonction du type d'action Genkit pour une période donnée de la trace.

Segments racines

Les segments racine comportent des attributs spéciaux pour aider à dissocier les attributs d'état de l'ensemble de la trace de ceux d'un segment individuel.

Nom de l'attribut Description
genkit/feature Nom de la fonctionnalité parente en cours d'exécution
genkit/isRoot Valeur "true" si cette étendue est l'étendue racine
genkit/rootState État de l'exécution globale, sous la forme success ou error. Cela n'indique pas que cette étape a échoué en particulier.

Flow

Nom de l'attribut Description
genkit/input Entrée du flux. Cette valeur sera toujours <redacted> en raison des limites de taille des attributs de trace.
genkit/metadata/subtype Type d'action Genkit. Pour les flux, il s'agit de flow.
genkit/name Nom de cette action Genkit. Dans ce cas, le nom du flux
genkit/output Résultat généré dans le flux. Cette valeur sera toujours <redacted> en raison des limites de taille des attributs de trace.
genkit/path Chemin d'exécution complet qui a conduit à cette étape de la trace, y compris des informations sur le type.
genkit/state État de l'exécution de cette étendue, sous la forme success ou error.
genkit/type Type de primitive Genkit qui correspond à cette plage. Pour les flux, il s'agit de action.

Util

Nom de l'attribut Description
genkit/input Entrée de l'utilitaire. Cette valeur sera toujours <redacted> en raison des limites de taille des attributs de trace.
genkit/name Nom de cette action Genkit. Dans ce cas, le nom du flux
genkit/output Sortie générée dans l'utilitaire. Cette valeur sera toujours <redacted> en raison des limites de taille des attributs de trace.
genkit/path Chemin d'exécution complet qui a conduit à cette étape de la trace, y compris des informations sur le type.
genkit/state État de l'exécution de cette étendue, sous la forme success ou error.
genkit/type Type de primitive Genkit qui correspond à cette plage. Pour les flux, il s'agit de util.

Modèle

Nom de l'attribut Description
genkit/input Entrée du modèle. Cette valeur sera toujours <redacted> en raison des limites de taille des attributs de trace.
genkit/metadata/subtype Type d'action Genkit. Pour les modèles, il s'agit de model.
genkit/model Nom du modèle.
genkit/name Nom de cette action Genkit. Dans ce cas, le nom du modèle.
genkit/output Résultat généré par le modèle. Cette valeur sera toujours <redacted> en raison des limites de taille des attributs de trace.
genkit/path Chemin d'exécution complet qui a conduit à cette étape de la trace, y compris des informations sur le type.
genkit/state État de l'exécution de cette étendue, sous la forme success ou error.
genkit/type Type de primitive Genkit qui correspond à cette plage. Pour les flux, il s'agit de action.

Outil

Nom de l'attribut Description
genkit/input Entrée du modèle. Cette valeur sera toujours <redacted> en raison des limites de taille des attributs de trace.
genkit/metadata/subtype Type d'action Genkit. Pour les outils, il s'agit de tool.
genkit/name Nom de cette action Genkit. Dans ce cas, le nom du modèle.
genkit/output Résultat généré par le modèle. Cette valeur sera toujours <redacted> en raison des limites de taille des attributs de trace.
genkit/path Chemin d'exécution complet qui a conduit à cette étape de la trace, y compris des informations sur le type.
genkit/state État de l'exécution de cette étendue, sous la forme success ou error.
genkit/type Type de primitive Genkit qui correspond à cette plage. Pour les flux, il s'agit de action.

Journaux

Pour les applications déployées avec Firebase Genkit Monitoring, les journaux sont utilisés pour capturer les métadonnées d'entrée, de sortie et de configuration qui fournissent des informations détaillées sur chaque étape de votre fonctionnalité d'IA.

Tous les journaux incluront les champs de métadonnées partagés suivants:

Nom du champ Description
insertId ID unique de l'entrée de journal
jsonPayload Conteneur d'informations variables propres à chaque type de journal
labels {module: genkit}
logName projects/weather-gen-test-next/logs/genkit_log
receivedTimestamp Heure à laquelle le journal a été reçu par Cloud
ressource Informations sur la source du journal, y compris la région des informations de déploiement et le projectId
de gravité, Niveau de journalisation écrit. Consultez LogSeverity dans Cloud.
spanId Identifiant de la période ayant créé ce journal
timestamp Heure à laquelle le client a consigné un message
trace Identifiant de la trace au format projects/<project-id>/traces/<trace-id>
traceSampled Valeur booléenne indiquant si la trace a été échantillonnée. Les journaux ne sont pas échantillonnés.

Chaque type de journal aura une charge utile JSON différente, décrite dans chaque section.

Entrée

Charge utile JSON:

Nom du champ Description
message [genkit] Input[<path>, <featureName>], y compris (message X of N) pour les messages multi-parties
métadonnées Contexte supplémentaire, y compris le message d'entrée envoyé à l'action

Métadonnées :

Nom du champ Description
contenu Contenu du message d'entrée envoyé à cette action Genkit
featureName Nom du flux, de l'action, de l'outil, de l'utilitaire ou de l'assistant Genkit.
messageIndex * Indice indiquant l'ordre des messages pour les entrées contenant plusieurs messages. Pour les messages individuels, cette valeur est toujours égale à 0.
model * Nom du modèle.
chemin d'accès Chemin d'exécution ayant généré ce journal au format step1 > step2 > step3
partIndex * Indice indiquant l'ordre des parties dans un message pour les messages multiparties. Cela est courant lorsque vous combinez du texte et des images dans une seule entrée.
qualifiedPath Le chemin d'exécution qui a généré ce journal, y compris les informations de type au format: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalMessages * Nombre total de messages pour cette entrée. Pour les messages individuels, cette valeur est toujours égale à 1.
totalParts * Nombre total de parties de ce message. Pour les messages en une seule partie, cette valeur est toujours égale à 1.

(*) Les éléments avec une étoile ne sont présents que dans les journaux d'entrée pour les interactions avec le modèle.

Sortie

Charge utile JSON:

Nom du champ Description
message [genkit] Output[<path>, <featureName>], y compris (message X of N) pour les messages multi-parties
métadonnées Contexte supplémentaire, y compris le message d'entrée envoyé à l'action

Métadonnées :

Nom du champ Description
candidateIndex * (obsolète) Indice indiquant l'ordre des candidats pour les sorties contenant plusieurs candidats. Pour les journaux avec des candidats uniques, cette valeur est toujours égale à 0.
contenu Message de sortie généré par l'action Genkit
featureName Nom du flux, de l'action, de l'outil, de l'utilitaire ou de l'assistant Genkit.
messageIndex * Indice indiquant l'ordre des messages pour les entrées contenant plusieurs messages. Pour les messages individuels, cette valeur est toujours égale à 0.
model * Nom du modèle.
chemin d'accès Chemin d'exécution ayant généré ce journal au format "étape1 > étape2 > étape3"
partIndex * Indice indiquant l'ordre des parties dans un message pour les messages multiparties. C'est le cas typiquement lorsque vous combinez du texte et des images dans une seule sortie.
qualifiedPath Le chemin d'exécution qui a généré ce journal, y compris les informations de type au format: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalCandidates * (obsolète) Nombre total de candidats générés en sortie. Pour les messages concernant un seul candidat, cette valeur est toujours égale à 1.
totalParts * Nombre total de parties de ce message. Pour les messages en une seule partie, cette valeur est toujours égale à 1.

(*) Les éléments avec une étoile ne sont présents que dans les journaux de sortie pour les interactions de modèle.

Config

Charge utile JSON:

Nom du champ Description
message [genkit] Config[<path>, <featureName>]
métadonnées Contexte supplémentaire, y compris le message d'entrée envoyé à l'action

Métadonnées :

Nom du champ Description
featureName Nom du flux, de l'action, de l'outil, de l'utilitaire ou de l'assistant Genkit.
modèle Nom du modèle.
chemin d'accès Chemin d'exécution ayant généré ce journal au format "étape1 > étape2 > étape3"
qualifiedPath Le chemin d'exécution qui a généré ce journal, y compris les informations de type au format: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
source Langue de la bibliothèque Genkit utilisée. Cette valeur est toujours définie sur "ts", car il s'agit de la seule langue prise en charge.
sourceVersion Version de la bibliothèque Genkit.
température Température du modèle utilisée.

Chemins d'accès

Charge utile JSON:

Nom du champ Description
message [genkit] Paths[<path>, <featureName>]
métadonnées Contexte supplémentaire, y compris le message d'entrée envoyé à l'action

Métadonnées :

Nom du champ Description
flowName Nom du flux, de l'action, de l'outil, de l'utilitaire ou de l'assistant Genkit.
paths Tableau contenant tous les chemins d'exécution des plages collectées.