Coleta de telemetria

O plug-in de telemetria do Firebase exporta uma combinação de métricas, rastros e registros para a Observabilidade do Google Cloud. Este documento detalha quais métricas, atributos de rastreamento e registros serão coletados e o que você pode esperar em termos de latência, cotas e custo.

Atraso de telemetria

Pode haver um pequeno atraso até que a telemetria de uma determinada invocação esteja disponível no Firebase. Isso depende do intervalo de exportação (5 minutos por padrão).

Cotas e limites

É importante ter várias cotas em mente:

Custo

O Cloud Logging, o Cloud Trace e o Cloud Monitoring têm níveis sem custo financeiro generosos. Os preços específicos podem ser encontrados nos seguintes links:

Métricas

O plug-in de telemetria do Firebase coleta várias métricas diferentes para oferecer suporte aos vários tipos de ação do Genkit detalhados nas seções a seguir.

Métricas de recursos

Os recursos são o ponto de entrada de nível superior do código do Genkit. Na maioria dos casos, será um fluxo. Caso contrário, esse será o período mais alto em um rastro.

Nome Tipo Descrição
genkit/feature/requests Contador Número de solicitações
genkit/feature/latency Histograma Latência de execução em ms

Cada métrica de recurso contém as seguintes dimensões:

Nome Descrição
nome O nome do recurso. Na maioria dos casos, esse é o fluxo de nível superior do Genkit.
status "success" ou "failure", dependendo se a solicitação do recurso foi bem-sucedida ou não.
error Definido apenas quando status=failure. Contém o tipo de erro que causou a falha
source O idioma de origem do Genkit. Por exemplo: 'ts'
sourceVersion A versão do framework do Genkit

Métricas de ação

As ações representam uma etapa genérica de execução no Genkit. Cada uma dessas etapas terá as seguintes métricas rastreadas:

Nome Tipo Descrição
genkit/action/requests Contador Número de vezes que essa ação foi executada
genkit/action/latency Histograma Latência de execução em ms

Cada métrica de ação contém as seguintes dimensões:

Nome Descrição
nome O nome da ação
featureName O nome do elemento pai que está sendo executado
path O caminho de execução da raiz do recurso até essa ação. Por exemplo, '/myFeature/parentAction/thisAction'
status "success" ou "failure", dependendo se a ação foi bem-sucedida ou não.
error Definido apenas quando status=failure. Contém o tipo de erro que causou a falha
source O idioma de origem do Genkit. Por exemplo: 'ts'
sourceVersion A versão do framework do Genkit

Gerar métricas

Essas são métricas de ação especiais relacionadas a ações que interagem com um modelo. Além das solicitações e da latência, a entrada e a saída também são rastreadas, com dimensões específicas do modelo que facilitam a depuração e o ajuste da configuração.

Nome Tipo Descrição
genkit/ai/generate/requests Contador Número de vezes que este modelo foi chamado
genkit/ai/generate/latency Histograma Latência de execução em ms
genkit/ai/generate/input/tokens Contador Tokens de entrada
genkit/ai/generate/output/tokens Contador Tokens de saída
genkit/ai/generate/input/characters Contador Caracteres de entrada
genkit/ai/generate/output/characters Contador Caracteres de saída
genkit/ai/generate/input/images Contador Imagens de entrada
genkit/ai/generate/output/images Contador Imagens de saída
genkit/ai/generate/input/audio Contador Inserir arquivos de áudio
genkit/ai/generate/output/audio Contador Gerar arquivos de áudio

Cada métrica gerada contém as seguintes dimensões:

Nome Descrição
modelName O nome do modelo
featureName O nome do elemento pai que está sendo executado
path O caminho de execução da raiz do recurso até essa ação. Por exemplo, '/myFeature/parentAction/thisAction'
latencyMs O tempo de resposta do modelo
status "success" ou "failure", dependendo se a solicitação do recurso foi bem-sucedida ou não.
error Definido apenas quando status=failure. Contém o tipo de erro que causou a falha
source O idioma de origem do Genkit. Por exemplo: 'ts'
sourceVersion A versão do framework do Genkit

Traces

Todas as ações do Genkit são instrumentadas automaticamente para fornecer rastros detalhados dos recursos de IA. Localmente, os rastros ficam visíveis na interface do desenvolvedor. Para apps implantados, ative o Monitoramento do Genkit do Firebase para ter o mesmo nível de visibilidade.

As seções a seguir descrevem quais atributos de rastreamento você pode esperar com base no tipo de ação do Genkit para um determinado período no rastreamento.

Períodos raiz

As extensões raiz têm atributos especiais para ajudar a eliminar a ambiguidade dos atributos de estado de todo o rastro em comparação com uma extensão individual.

Nome do atributo Descrição
genkit/feature O nome do elemento pai que está sendo executado
genkit/isRoot Marcado como verdadeiro se a extensão for a raiz
genkit/rootState O estado da execução geral como success ou error. Isso não indica que essa etapa falhou especificamente.

Fluxo

Nome do atributo Descrição
genkit/input A entrada do fluxo. Ele sempre será <redacted> devido aos limites de tamanho do atributo de rastreamento.
genkit/metadata/subtype O tipo de ação do Genkit. Para fluxos, será flow.
genkit/name O nome desta ação do Genkit. Neste caso, o nome do fluxo
genkit/output A saída gerada no fluxo. Ele sempre será <redacted> devido aos limites de tamanho do atributo de rastreamento.
genkit/path O caminho de execução totalmente qualificado que leva a esta etapa no trace, incluindo informações de tipo.
genkit/state O estado da execução desse período como success ou error.
genkit/type O tipo de primitiva do Genkit que corresponde a esse período. Para fluxos, será action.

Util

Nome do atributo Descrição
genkit/input A entrada para o utilitário. Ele sempre será <redacted> devido aos limites de tamanho do atributo de rastreamento.
genkit/name O nome desta ação do Genkit. Neste caso, o nome do fluxo
genkit/output A saída gerada no utilitário. Ele sempre será <redacted> devido aos limites de tamanho do atributo de rastreamento.
genkit/path O caminho de execução totalmente qualificado que leva a esta etapa no trace, incluindo informações de tipo.
genkit/state O estado da execução desse período como success ou error.
genkit/type O tipo de primitiva do Genkit que corresponde a esse período. Para fluxos, será util.

Modelo

Nome do atributo Descrição
genkit/input São a entrada para o modelo. Ele sempre será <redacted> devido aos limites de tamanho do atributo de rastreamento.
genkit/metadata/subtype O tipo de ação do Genkit. Para modelos, será model.
genkit/model O nome do modelo.
genkit/name O nome desta ação do Genkit. Neste caso, o nome do modelo.
genkit/output A saída gerada pelo modelo. Ele sempre será <redacted> devido aos limites de tamanho do atributo de rastreamento.
genkit/path O caminho de execução totalmente qualificado que leva a esta etapa no trace, incluindo informações de tipo.
genkit/state O estado da execução desse período como success ou error.
genkit/type O tipo de primitiva do Genkit que corresponde a esse período. Para fluxos, será action.

Ferramenta

Nome do atributo Descrição
genkit/input São a entrada para o modelo. Ele sempre será <redacted> devido aos limites de tamanho do atributo de rastreamento.
genkit/metadata/subtype O tipo de ação do Genkit. Para ferramentas, será tool.
genkit/name O nome desta ação do Genkit. Neste caso, o nome do modelo.
genkit/output A saída gerada pelo modelo. Ele sempre será <redacted> devido aos limites de tamanho do atributo de rastreamento.
genkit/path O caminho de execução totalmente qualificado que leva a esta etapa no trace, incluindo informações de tipo.
genkit/state O estado da execução desse período como success ou error.
genkit/type O tipo de primitiva do Genkit que corresponde a esse período. Para fluxos, será action.

Registros

Para apps implantados com o Monitoramento do Firebase Genkit, os registros são usados para capturar metadados de entrada, saída e configuração que fornecem detalhes sobre cada etapa do recurso de IA.

Todos os registros vão incluir os seguintes campos de metadados compartilhados:

Nome do campo Descrição
insertId ID exclusivo da entrada de registro
jsonPayload Contêiner para informações variáveis exclusivas de cada tipo de registro
rótulos {module: genkit}
logName projects/weather-gen-test-next/logs/genkit_log
receivedTimestamp Hora em que o registro foi recebido pelo Cloud
recurso Informações sobre a origem do registro, incluindo a região de informações de implantação e o projectId
gravidade, O nível de registro gravado. Consulte LogSeverity do Cloud.
spanId Identificador do período que criou este registro
timestamp Hora em que o cliente registrou uma mensagem
trace Identificador do rastro do formato projects/<project-id>/traces/<trace-id>
traceSampled Booleano que representa se o rastro foi amostrado. Os registros não são amostrados.

Cada tipo de registro terá um payload JSON diferente descrito em cada seção.

Entrada

Payload JSON:

Nome do campo Descrição
mensagem [genkit] Input[<path>, <featureName>], incluindo (message X of N) para mensagens de várias partes
metadados Contexto adicional, incluindo a mensagem de entrada enviada para a ação

Metadados:

Nome do campo Descrição
conteúdo O conteúdo da mensagem de entrada enviada para esta ação do Genkit
featureName O nome do fluxo, ação, ferramenta, utilitário ou auxiliar do Genkit.
messageIndex * Índice que indica a ordem das mensagens para entradas com várias mensagens. Para mensagens únicas, esse valor sempre será 0.
modelo * Nome do modelo.
path O caminho de execução que gerou este registro do formato step1 > step2 > step3
partIndex * Índice que indica a ordem das partes em uma mensagem de várias partes. Isso é comum ao combinar texto e imagens em uma única entrada.
qualifiedPath O caminho de execução que gerou esse registro, incluindo informações de tipo do formato: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalMessages * O número total de mensagens para essa entrada. Para mensagens únicas, esse valor será sempre 1.
totalParts * Número total de partes desta mensagem. Para mensagens de uma parte, esse valor sempre será 1.

(*) Os itens com estrela só aparecem nos registros de entrada para interações de modelo.

Saída

Payload JSON:

Nome do campo Descrição
mensagem [genkit] Output[<path>, <featureName>], incluindo (message X of N) para mensagens de várias partes
metadados Contexto adicional, incluindo a mensagem de entrada enviada para a ação

Metadados:

Nome do campo Descrição
candidateIndex * (descontinuado) Índice que indica a ordem dos candidatos para saídas que contêm vários candidatos. Para registros com candidatos únicos, esse valor será sempre 0.
conteúdo A mensagem de saída gerada pela ação do Genkit
featureName O nome do fluxo, ação, ferramenta, utilitário ou auxiliar do Genkit.
messageIndex * Índice que indica a ordem das mensagens para entradas com várias mensagens. Para mensagens únicas, esse valor sempre será 0.
modelo * Nome do modelo.
path O caminho de execução que gerou este registro do formato "etapa1 > etapa2 > etapa3
partIndex * Índice que indica a ordem das partes em uma mensagem de várias partes. Isso é comum ao combinar texto e imagens em uma única saída.
qualifiedPath O caminho de execução que gerou esse registro, incluindo informações de tipo do formato: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalCandidates * (descontinuado) Número total de candidatos gerados como saída. Para mensagens de candidato único, esse valor será sempre 1.
totalParts * Número total de partes desta mensagem. Para mensagens de uma parte, esse valor sempre será 1.

(*) Os itens com estrela só aparecem nos registros de saída para interações de modelo.

Configuração

Payload JSON:

Nome do campo Descrição
mensagem [genkit] Config[<path>, <featureName>]
metadados Contexto adicional, incluindo a mensagem de entrada enviada para a ação

Metadados:

Nome do campo Descrição
featureName O nome do fluxo, ação, ferramenta, utilitário ou assistente do Genkit.
modelo Nome do modelo.
path O caminho de execução que gerou este registro do formato "etapa1 > etapa2 > etapa3
qualifiedPath O caminho de execução que gerou esse registro, incluindo informações de tipo do formato: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
source A linguagem da biblioteca Genkit usada. Ele sempre será definido como "ts", porque é o único idioma aceito.
sourceVersion A versão da biblioteca do Genkit.
temperatura Temperatura do modelo usada.

Caminhos

Payload JSON:

Nome do campo Descrição
mensagem [genkit] Paths[<path>, <featureName>]
metadados Contexto adicional, incluindo a mensagem de entrada enviada para a ação

Metadados:

Nome do campo Descrição
flowName O nome do fluxo, ação, ferramenta, utilitário ou assistente do Genkit.
paths Uma matriz que contém todos os caminhos de execução dos spans coletados.