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