Recopilación de telemetría

El complemento de telemetría de Firebase exporta una combinación de métricas, seguimientos y registros a Google Cloud Observability. En este documento, se detallan qué métricas, atributos de seguimiento y registros se recopilarán, y qué puedes esperar en términos de latencia, cuotas y costo.

Demora de telemetría

Puede haber una leve demora antes de que la telemetría de una invocación determinada esté disponible en Firebase. Esto depende del intervalo de exportación (5 minutos de forma predeterminada).

Cuotas y límites

Es importante tener en cuenta varias cuotas:

Costo

Cloud Logging, Cloud Trace y Cloud Monitoring tienen niveles gratuitos generosos. Puedes encontrar los precios específicos en los siguientes vínculos:

Métricas

El complemento de Firebase telemetry recopila varias métricas diferentes para admitir los diferentes tipos de acciones de Genkit que se detallan en las siguientes secciones.

Métricas de atributos

Las funciones son el punto de entrada de nivel superior a tu código de Genkit. En la mayoría de los casos, será un flujo. De lo contrario, este será el intervalo más alto en un seguimiento.

Nombre Tipo Descripción
genkit/feature/requests Contador Cantidad de solicitudes
genkit/feature/latency Histograma Latencia de ejecución en ms

Cada métrica de componentes contiene las siguientes dimensiones:

Nombre Descripción
nombre Es el nombre de la función. En la mayoría de los casos, este es el flujo de Genkit de nivel superior.
estado "success" o "failure", según si la solicitud de función se realizó correctamente o no
error Solo se establece cuando status=failure. Contiene el tipo de error que causó la falla.
source Es el idioma de origen de Genkit. P. ej., 'ts'
sourceVersion La versión del framework de Genkit

Métricas de acción

Las acciones representan un paso genérico de ejecución dentro de Genkit. Se hará un seguimiento de las siguientes métricas en cada uno de estos pasos:

Nombre Tipo Descripción
genkit/action/requests Contador Cantidad de veces que se ejecutó esta acción
genkit/action/latency Histograma Latencia de ejecución en ms

Cada métrica de acción contiene las siguientes dimensiones:

Nombre Descripción
nombre Es el nombre de la acción.
featureName Es el nombre de la función superior que se está ejecutando.
path Es la ruta de ejecución desde la raíz de la función hasta esta acción. p. ej., '/myFeature/parentAction/thisAction'
estado "success" o "failure", según si la acción se realizó correctamente o no
error Solo se establece cuando status=failure. Contiene el tipo de error que causó la falla.
source Es el idioma de origen de Genkit. P. ej., 'ts'
sourceVersion La versión del framework de Genkit

Genera métricas

Estas son métricas de acciones especiales relacionadas con acciones que interactúan con un modelo. Además de las solicitudes y la latencia, también se realiza un seguimiento de las entradas y salidas, con dimensiones específicas del modelo que facilitan la depuración y el ajuste de la configuración.

Nombre Tipo Descripción
genkit/ai/generate/requests Contador Cantidad de veces que se llamó a este modelo
genkit/ai/generate/latency Histograma Latencia de ejecución en ms
genkit/ai/generate/input/tokens Contador Tokens de entrada
genkit/ai/generate/output/tokens Contador Tokens de salida
genkit/ai/generate/input/characters Contador Caracteres de entrada
genkit/ai/generate/output/characters Contador Caracteres de salida
genkit/ai/generate/input/images Contador Imágenes de entrada
genkit/ai/generate/output/images Contador Imágenes de salida
genkit/ai/generate/input/audio Contador Cómo ingresar archivos de audio
genkit/ai/generate/output/audio Contador Archivos de audio de salida

Cada métrica de generación contiene las siguientes dimensiones:

Nombre Descripción
modelName El nombre del modelo
featureName Es el nombre de la función superior que se está ejecutando.
path Es la ruta de ejecución desde la raíz de la función hasta esta acción. p. ej., '/myFeature/parentAction/thisAction'
latencyMs El tiempo de respuesta que tarda el modelo
estado "success" o "failure", según si la solicitud de función se realizó correctamente o no
error Solo se establece cuando status=failure. Contiene el tipo de error que causó la falla.
source Es el idioma de origen de Genkit. P. ej., 'ts'
sourceVersion La versión del framework de Genkit

Seguimiento

Todas las acciones de Genkit se instrumentan automáticamente para proporcionar seguimientos detallados de tus funciones de IA. De forma local, los seguimientos se pueden ver en la IU para desarrolladores. En el caso de las apps implementadas, habilita Firebase Genkit Monitoring para obtener el mismo nivel de visibilidad.

En las siguientes secciones, se describen los atributos de seguimiento que puedes esperar según el tipo de acción de Genkit para un intervalo determinado en el seguimiento.

Intervalos raíz

Los tramos raíz tienen atributos especiales para ayudar a desambiguar los atributos de estado de todo el seguimiento en comparación con un tramo individual.

Nombre del atributo Descripción
genkit/feature Es el nombre de la función superior que se está ejecutando.
genkit/isRoot Se marca como verdadero si este intervalo es el intervalo raíz.
genkit/rootState El estado de la ejecución general como success o error. Esto no indica que este paso falló en particular.

Flujo

Nombre del atributo Descripción
genkit/input Es la entrada del flujo. Siempre será <redacted> debido a los límites de tamaño de los atributos de seguimiento.
genkit/metadata/subtype Es el tipo de acción de Genkit. Para los flujos, será flow.
genkit/name Es el nombre de esta acción de Genkit. En este caso, el nombre del flujo
genkit/output El resultado generado en el flujo. Siempre será <redacted> debido a los límites de tamaño de los atributos de seguimiento.
genkit/path Es la ruta de ejecución completamente calificada que lleva a este paso en el seguimiento, incluida la información del tipo.
genkit/state El estado de la ejecución de este intervalo como success o error.
genkit/type Es el tipo de primitiva de Genkit que corresponde a este intervalo. Para los flujos, será action.

Util

Nombre del atributo Descripción
genkit/input Es la entrada a la utilidad. Siempre será <redacted> debido a los límites de tamaño de los atributos de seguimiento.
genkit/name Es el nombre de esta acción de Genkit. En este caso, el nombre del flujo
genkit/output Es el resultado generado en la utilidad. Siempre será <redacted> debido a los límites de tamaño de los atributos de seguimiento.
genkit/path Es la ruta de ejecución completamente calificada que lleva a este paso en el seguimiento, incluida la información del tipo.
genkit/state El estado de la ejecución de este intervalo como success o error.
genkit/type Es el tipo de primitiva de Genkit que corresponde a este intervalo. Para los flujos, será util.

Modelo

Nombre del atributo Descripción
genkit/input La entrada del modelo. Siempre será <redacted> debido a los límites de tamaño de los atributos de seguimiento.
genkit/metadata/subtype Es el tipo de acción de Genkit. Para los modelos, será model.
genkit/model El nombre del modelo.
genkit/name Es el nombre de esta acción de Genkit. En este caso, el nombre del modelo.
genkit/output El resultado que genera el modelo. Siempre será <redacted> debido a los límites de tamaño de los atributos de seguimiento.
genkit/path Es la ruta de ejecución completamente calificada que lleva a este paso en el seguimiento, incluida la información del tipo.
genkit/state El estado de la ejecución de este intervalo como success o error.
genkit/type Es el tipo de primitiva de Genkit que corresponde a este intervalo. Para los flujos, será action.

Herramienta

Nombre del atributo Descripción
genkit/input La entrada del modelo. Siempre será <redacted> debido a los límites de tamaño de los atributos de seguimiento.
genkit/metadata/subtype Es el tipo de acción de Genkit. Para las herramientas, será tool.
genkit/name Es el nombre de esta acción de Genkit. En este caso, el nombre del modelo.
genkit/output El resultado que genera el modelo. Siempre será <redacted> debido a los límites de tamaño de los atributos de seguimiento.
genkit/path Es la ruta de ejecución completamente calificada que lleva a este paso en el seguimiento, incluida la información del tipo.
genkit/state El estado de la ejecución de este intervalo como success o error.
genkit/type Es el tipo de primitiva de Genkit que corresponde a este intervalo. Para los flujos, será action.

Registros

En el caso de las apps implementadas con Firebase Genkit Monitoring, los registros se usan para capturar metadatos de entrada, salida y configuración que proporcionan detalles enriquecidos sobre cada paso de tu función de IA.

Todos los registros incluirán los siguientes campos de metadatos compartidos:

Nombre del campo Descripción
insertId ID único para la entrada de registro
jsonPayload Contenedor de información de variables que es única para cada tipo de registro
etiquetas {module: genkit}
logName projects/weather-gen-test-next/logs/genkit_log
receivedTimestamp Hora en la que Cloud recibió el registro
recurso Información sobre la fuente del registro, incluida la región de información de implementación y el projectId
gravedad, El nivel de registro escrito Consulta LogSeverity de Cloud.
spanId Es el identificador del intervalo que creó este registro.
timestamp Hora en la que el cliente registró un mensaje
registro Es el identificador del seguimiento del formato projects/<project-id>/traces/<trace-id>.
traceSampled Es un valor booleano que representa si se tomó una muestra del seguimiento. Los registros no se muestrean.

Cada tipo de registro tendrá una carga útil de JSON diferente que se describe en cada sección.

Entrada

Carga útil de JSON:

Nombre del campo Descripción
mensaje [genkit] Input[<path>, <featureName>], incluida (message X of N), para mensajes de varias partes
metadatos Contexto adicional, incluido el mensaje de entrada que se envió a la acción

Metadatos:

Nombre del campo Descripción
contenido Es el contenido del mensaje de entrada que se envía a esta acción de Genkit.
featureName Es el nombre del flujo, la acción, la herramienta, la utilidad o el ayudante de Genkit.
messageIndex * Es un índice que indica el orden de los mensajes para las entradas que contienen varios mensajes. Para los mensajes individuales, siempre será 0.
model * Nombre del modelo
path La ruta de ejecución que generó este registro del formato step1 > step2 > step3
partIndex * Es un índice que indica el orden de las partes dentro de un mensaje de varias partes. Esto es típico cuando se combinan imágenes y texto en una sola entrada.
qualifiedPath La ruta de ejecución que generó este registro, incluida la información de tipo del formato: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalMessages * Es la cantidad total de mensajes de esta entrada. En el caso de los mensajes individuales, siempre será 1.
totalParts * Es la cantidad total de partes de este mensaje. Para los mensajes de una sola parte, siempre será 1.

(*) Los elementos destacados solo están presentes en los registros de entrada para las interacciones del modelo.

Salida

Carga útil de JSON:

Nombre del campo Descripción
mensaje [genkit] Output[<path>, <featureName>], incluido (message X of N) para mensajes de varias partes
metadatos Contexto adicional, incluido el mensaje de entrada que se envió a la acción

Metadatos:

Nombre del campo Descripción
candidateIndex * (obsoleto) Es un índice que indica el orden de los candidatos para las salidas que contienen varios candidatos. Para los registros con candidatos únicos, este valor siempre será 0.
contenido Es el mensaje de salida que genera la acción de Genkit.
featureName Es el nombre del flujo, la acción, la herramienta, la utilidad o el ayudante de Genkit.
messageIndex * Es un índice que indica el orden de los mensajes para las entradas que contienen varios mensajes. Para los mensajes individuales, siempre será 0.
model * Nombre del modelo
path La ruta de ejecución que generó este registro del formato "paso1 > paso2 > paso3
partIndex * Es un índice que indica el orden de las partes dentro de un mensaje de varias partes. Esto es típico cuando se combinan imágenes y texto en un solo resultado.
qualifiedPath La ruta de ejecución que generó este registro, incluida la información de tipo del formato: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalCandidates * (obsoleto) Cantidad total de candidatos generados como resultado. Para los mensajes de un solo candidato, siempre será 1.
totalParts * Es la cantidad total de partes de este mensaje. Para los mensajes de una sola parte, siempre será 1.

(*) Los elementos con asterisco solo están presentes en los registros de salida de las interacciones del modelo.

Configuración

Carga útil de JSON:

Nombre del campo Descripción
mensaje [genkit] Config[<path>, <featureName>]
metadatos Contexto adicional, incluido el mensaje de entrada que se envió a la acción

Metadatos:

Nombre del campo Descripción
featureName Es el nombre del flujo, la acción, la herramienta, la utilidad o el ayudante de Genkit.
modelo Nombre del modelo
path La ruta de ejecución que generó este registro del formato "paso1 > paso2 > paso3
qualifiedPath La ruta de ejecución que generó este registro, incluida la información de tipo del formato: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
source Es el lenguaje de la biblioteca de Genkit que se usa. Siempre se establecerá como "ts", ya que es el único idioma admitido.
sourceVersion Es la versión de la biblioteca de Genkit.
temperatura Temperatura del modelo que se usó

Rutas de acceso

Carga útil de JSON:

Nombre del campo Descripción
mensaje [genkit] Paths[<path>, <featureName>]
metadatos Contexto adicional, incluido el mensaje de entrada que se envió a la acción

Metadatos:

Nombre del campo Descripción
flowName Es el nombre del flujo, la acción, la herramienta, la utilidad o el ayudante de Genkit.
paths Es un array que contiene todas las instrucciones de ejecución para los intervalos recopilados.