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