Começar a usar o Monitoring do Genkit

Este guia de início rápido descreve como configurar o Monitoramento do Firebase Genkit para os recursos do Genkit implantados para que você possa coletar e visualizar dados de telemetria em tempo real. Com o monitoramento do Firebase Genkit, você tem visibilidade sobre como os recursos do Genkit estão funcionando na produção.

Os principais recursos do Monitoramento do Genkit do Firebase incluem:

  • Visualizar métricas quantitativas, como latência, erros e uso de tokens do recurso Genkit.
  • Inspecionar rastros para conferir as etapas, entradas e saídas do recurso do Genkit para ajudar na depuração e na melhoria da qualidade.
  • Exportar rastros de produção para executar avaliações no Genkit.

A configuração do monitoramento do Genkit exige a conclusão de tarefas na base de código e no console do Google Cloud.

Antes de começar

  1. Crie um projeto do Firebase, se ainda não tiver um.

    No Console do Firebase, clique em Adicionar um projeto e siga as instruções na tela. É possível criar um projeto ou adicionar serviços do Firebase a um projeto do Google Cloud.

  2. Verifique se o projeto está no plano de preços Blaze.

    O Genkit Monitoring depende de dados de telemetria gravados no Google Cloud Logging, nas Métricas e no Trace, que são serviços pagos. Acesse a página Preços da Observabilidade do Google Cloud para conferir detalhes de preços e saber mais sobre os limites do nível sem custos.

  3. Para criar um recurso do Genkit, siga o Guia para iniciantes e prepare seu código para implantação usando um destes guias:

    1. Implantar fluxos usando o Cloud Functions para Firebase
    2. Implantar fluxos usando o Cloud Run
    3. Implantar fluxos em qualquer plataforma Node.js

Etapa 1. Adicionar o plug-in do Firebase

Instale o plug-in @genkit-ai/firebase no seu projeto:

npm i save @genkit-ai/firebase

Importe enableFirebaseTelemetry para o arquivo de configuração do Genkit (o arquivo em que genkit(...) é inicializado) e chame-o:

import { enableFirebaseTelemetry } from '@genkit-ai/firebase';

enableFirebaseTelemetry();

Etapa 2. Ative as APIs necessárias

Verifique se as seguintes APIs estão ativadas no seu projeto do GCP:

Essas APIs devem ser listadas no painel de APIs do seu projeto.

Etapa 3. Configurar permissões

O plug-in do Firebase precisa usar uma conta de serviço para se autenticar com os serviços do Google Cloud Logging, Métricas e Trace.

Conceda os seguintes papéis à conta de serviço configurada para executar seu código no console do Google Cloud IAM. No Cloud Functions para Firebase e/ou Cloud Run, essa é normalmente a conta de serviço de computação padrão.

  • Gravador de métricas do Monitoring (roles/monitoring.metricWriter)
  • Agente do Cloud Trace (roles/cloudtrace.agent)
  • Gravador de registros (roles/logging.logWriter)

Etapa 4. (Opcional) Testar a configuração localmente

Antes da implantação, é possível executar o código do Genkit localmente para confirmar se os dados de telemetria estão sendo coletados e podem ser visualizados no painel de monitoramento do Genkit.

  1. No código do Genkit, defina forceDevExport como true para enviar a telemetria do seu ambiente local.

  2. Use sua conta de serviço para autenticar e testar a configuração.

    Com a ferramenta CLI do Google Cloud, faça a autenticação usando a conta de serviço:

    gcloud auth application-default login --impersonate-service-account <SERVICE_ACCT_EMAIL>
    
  3. Execute e invoque o recurso do Genkit e confira as métricas no Painel de monitoramento do Genkit. Aguarde até 5 minutos para coletar a primeira métrica. É possível reduzir esse atraso definindo metricExportIntervalMillis na configuração de telemetria.

  4. Se as métricas não aparecerem no painel do Genkit Monitoring, consulte o guia Solução de problemas para conferir as etapas de depuração.

Etapa 5. Recriar e implantar o código

Recrie, implante e invoque o recurso do Genkit para começar a coletar dados. Depois que o Genkit Monitoring receber suas métricas, elas poderão ser visualizadas no painel do Genkit Monitoring.