Monitoramento do Genkit: solução de problemas

As seções a seguir detalham soluções para problemas comuns que os desenvolvedores encontram ao usar o monitoramento do Genkit do Firebase.

Não consigo ver rastros ou métricas no monitoramento do Firebase Genkit

  1. Verifique se as APIs abaixo estão ativadas para seu projeto do Google Cloud:
  2. Verifique se os seguintes papéis são aplicados à conta de serviço que está executando seu código (ou à conta de serviço configurada como parte das opções do plug-in) no Cloud IAM.
    • Gravador de métricas do Monitoring (roles/monitoring.metricWriter)
    • Agente do Cloud Trace (roles/cloudtrace.agent)
    • Gravador de registros (roles/logging.logWriter)
  3. Inspecione os registros do aplicativo para verificar se há erros de gravação no Cloud Logging, no Cloud Trace e no Cloud Monitoring. Na infraestrutura do Google Cloud, como o Firebase Functions e o Cloud Run, mesmo quando a telemetria está incorretamente configurada, os registros para stdout/stderr são ingeridos automaticamente pelo agente do Cloud Logging. Isso permite que você diagnostique problemas no console do Cloud Logging.

  4. Depurar localmente:

    Ativar a exportação de desenvolvedor:

    enableFirebaseTelemetry({
      forceDevExport: true
    });
    

    Para testar com suas credenciais de usuário pessoais, use a gcloud CLI para fazer a autenticação com o Google Cloud. Isso pode ajudar a diagnosticar APIs ativadas ou desativadas, mas não testa o login padrão do aplicativo gcloud auth.

    Como alternativa, a personificação da conta de serviço permite testar acessos semelhantes à produção. Você precisa ter o papel do IAM roles/iam. serviceAccountTokenCreator aplicado à sua conta de usuário para representar contas de serviço:

    gcloud auth application-default login --impersonate-service-account <SERVICE_ACCT_EMAIL>

    Consulte a documentação do ADC para mais informações.

Confiabilidade do upload de telemetria no Firebase Functions / Cloud Run

Quando o Genkit é hospedado no Google Cloud Run (incluindo o Cloud Functions para Firebase), o upload de dados de telemetria pode ser menos confiável, porque o contêiner muda para o estado de ciclo de vida "inativo". Se uma confiabilidade maior for importante para você, mude a alocação de CPU para sempre alocada no console do Google Cloud.