Este documento descreve cenários comuns de solução de problemas para o Error Reporting.
Os eventos de erro enviados à API Error Reporting não são mostrados
Você envia eventos de erro para seu projeto do Google Cloud usando a API Error Reporting. No entanto, esses eventos não aparecem na página Error Reporting.
Para resolver esse problema, faça o seguinte:
Verifique se a API Error Reporting está ativada.
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.Abra o Cloud Shell e use a Google Cloud CLI para verificar se é possível enviar eventos de erro ao seu projeto:
Execute este comando:
gcloud beta error-reporting events report --service Manual --service-version test1 \ --message "java.lang.TestError: msg at com.example.TestClass.test(TestClass.java:51) at com.example.AnotherClass(AnotherClass.java:25)"Acesse a página Error Reporting e verifique se ela mostra um erro chamado
TestError: msg.Acesse a página do Explorador de registros e pesquise as entradas de registro por
TestError. A entrada de registro é criada automaticamente.
Verifique se o aplicativo está enviando o evento de erro para o endpoint
reporte se ele está formatando o corpo da solicitação como um objetoReportedErrorEvent. Verifique também se as entradas de registro estão sendo criadas. Ao usar a API Error Reporting, as entradas de registro com mensagens de erro formatadas corretamente são geradas e gravadas automaticamente no Cloud Logging. Essas entradas de registro são gravadas em um registro cujologNameé formatado da seguinte maneira:projects/PROJECT_ID/clouderrorreporting.googleapis.com%2Freported_errors
Os eventos de erro são mostrados, mas a API Error Reporting está desativada
Você desativou a API Error Reporting. No entanto, a página Error Reporting do console do Google Cloud mostra eventos de erro.
Esse é o comportamento esperado. Os eventos de erro são criados em resposta a chamadas da API Error Reporting feitas ao endpoint report.
No entanto, os eventos de erro também são inferidos quando o Error Reporting pode analisar os dados de registro.
Os eventos de erro não são inferidos dos dados de registro
Você espera que o Error Reporting verifique seus dados de registro e infira eventos de erro. No entanto, a página Error Reporting não mostra nenhum evento de erro, mesmo que as entradas de registro gravem dados de erro.
Para resolver esse problema, faça o seguinte:
Verifique se o Error Reporting pode analisar suas entradas de registro.
O Error Reporting é um serviço global criado no Cloud Logging e pode analisar entradas de registro quando todas as condições a seguir são verdadeiras:
- O Assured Workloads está desativado. Para mais informações, consulte Visão geral do Assured Workloads.
- As chaves de criptografia gerenciadas pelo cliente (CMEK) estão desativadas em todos os buckets de registros que armazenam a entrada de registro. O Error Reporting não pode armazenar entradas de registro em buckets com a CMEK ativada. Para saber como determinar a configuração da CMEK de um bucket de registros, consulte Verificar a ativação da chave.
- O bucket de registros atende a um dos seguintes requisitos:
- O bucket de registros é armazenado no mesmo projeto em que as entradas de registro foram criadas.
- As entradas de registro foram encaminhadas para um projeto, que as armazenou em um bucket de registros de propriedade dele.
Para conferir uma lista de coletores configurados, execute o seguinte comando:
gcloud logging sinks listO comando retorna uma saída semelhante a esta:
NAME DESTINATION FILTER _Default logging.googleapis.com/projects/my-team-project/locations/global/buckets/_Default NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT LOG_ID("externalaudit.googleapis.com/activity") AND NOT LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT LOG_ID("externalaudit.googleapis.com/system_event") AND NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency") _Required logging.googleapis.com/projects/my-team-project/locations/global/buckets/_Required LOG_ID("cloudaudit.googleapis.com/activity") OR LOG_ID("externalaudit.googleapis.com/activity") OR LOG_ID("cloudaudit.googleapis.com/system_event") OR LOG_ID("externalaudit.googleapis.com/system_event") OR LOG_ID("cloudaudit.googleapis.com/access_transparency") OR LOG_ID("externalaudit.googleapis.com/access_transparency") logs-from-samples logging.googleapis.com/projects/my-team-project/locations/global/buckets/sample-bucket (empty filter) regional_logs logging.googleapis.com/projects/my-team-project/locations/europe-west1/buckets/bucket_for_regional_logs (empty filter) test-logs logging.googleapis.com/projects/team-b-project/locations/global/buckets/test-bucket (empty filter)Neste exemplo, o projeto Google Cloud de origem das entradas de registro é
my-team-project. O resultado disso é o seguinte:- O Error Reporting pode analisar as entradas de registro roteadas pelos coletores
_Default,_Requiredelogs-from-samplesporque o bucket de registros é armazenado pelo mesmo projeto que roteia as entradas de registro. - O Error Reporting não pode analisar as entradas de registro armazenadas no bucket de registro chamado
test-logsporque o coletor emmy-team-projectencaminha as entradas de registro para um bucket de registros em um projeto diferente.
Use a Google Cloud CLI para verificar se é possível gravar entradas de registro que geram um evento de erro.
Execute este comando:
gcloud logging write --payload-type=json test-errors-log \ '{"serviceContext": {"service": "manual-testing"}, "message": "Test Error\n at /test.js:42:42", "context": {"httpRequest": {"url": "/test","method": "GET","responseStatusCode": 500}}}'Acesse a página do Explorador de registros e pesquise as entradas de registro por
Test Error.Acessar a Análise de registros
Essa entrada de registro é gerada pela CLI gcloud. Se a entrada de registro não estiver vinculada a um grupo de erros, aguarde cerca de um minuto e atualize a página. Os eventos de erro são detectados depois que uma entrada de registro é ingerida.
Acesse a página Error Reporting e verifique se ela mostra um erro chamado
Test Error.
Acesse a página do Explorador de registros e verifique se o aplicativo está gravando entradas de registro no formato esperado.
Acessar a Análise de registros
Localize uma entrada de registro que contenha dados de exceção enviados do seu aplicativo e verifique o formato. Se o formato não estiver correto, atualize o aplicativo.
Uma entrada de registro contém um stack trace, mas nenhum evento de erro é criado
Você gera uma entrada de registro cujo campo message contém um stack trace.
No entanto, a página Error Reporting não lista um evento de erro correspondente.
Para resolver essa falha, tente o seguinte:
Verifique se o
jsonPayloadnão inclui um campostack_traceouexception. Quando esses campos estão presentes, o campomessagenão é avaliado.Verifique se a estrutura do stack trace está em um dos formatos de linguagem de programação compatíveis. O stack trace não é capturado pelo Error Reporting quando um formato sem suporte é usado.
Para mais informações, consulte Formatar uma entrada de registro para informar eventos de erro.