Se os erros do aplicativo não estiverem aparecendo no Error Reporting, siga as etapas abaixo para resolver o problema.
Antes de começar
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 forem verdadeiras:
- As cargas de trabalho garantidas estão desativadas. 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 registro que armazenam a entrada de registro. Para saber como determinar a configuração da CMEK para um bucket de registros, consulte Verificar a ativação da chave.
- O bucket de registros atende a uma das seguintes condições:
- O bucket de registros é armazenado no mesmo projeto em que as entradas de registro foram originadas.
- As entradas de registro foram roteadas para um projeto, que as armazenou em um bucket de registros.
Para conferir uma lista de coletores configurados, execute o seguinte comando:
gcloud logging sinks list
O 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 de origem do Google Cloud 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
,_Required
elogs-from-samples
porque o bucket de registros é armazenado pelo mesmo projeto que encaminha as entradas de registro. - O Error Reporting não pode analisar as entradas de registro armazenadas no bucket de registro
chamado
test-logs
porque o coletor emmy-team-project
encaminha as entradas de registro para um bucket de registros em um projeto diferente.
Verifique se você tem a Google Cloud CLI instalada.
Verifique se o componente
beta
está ativado para a CLI gcloud.
Ao usar os registros
Esta seção oferece suporte à solução de problemas quando os dados de erro são gravados em buckets do Cloud Logging e você usa o Error Reporting para analisar automaticamente esses buckets de registro.
Gerar uma amostra de entrada de registro
Para confirmar as configurações do seu projeto, você pode gerar uma entrada de registro programada
que será capturada pelo Error Reporting com o seguinte comando
gcloud
:
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}}}'
Em seguida, abra o Error Reporting e confirme que você vê o erro recém-criado.
Confirmar o formato da entrada de registro
Navegue até a página do Cloud Logging e localize uma entrada de registro que contenha dados de exceção enviados do seu aplicativo.
Verifique se a entrada de registro usa o formato esperado.
Ao usar a Error Reporting API
-
Enable the required API.
Enviar um erro de teste
Tente enviar manualmente um erro para o serviço.
Você pode informar um erro de teste ao Error Reporting usando o seguinte comando
gcloud
: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)"
Use um comando cURL para testar suas solicitações da REST API. Substitua
PROJECT_ID
eAPI_KEY
pelos seus valores válidos antes de enviar este comando:curl -X POST -H "Content-Type: application/json" \ -d '{"message":"java.lang.TestError: msg\n\tat com.example.TestClass.test(TestClass.java:51)\n\tat com.example.AnotherClass(AnotherClass.java:25)","serviceContext":{"service":"manual-testing"}}' \ https://clouderrorreporting.googleapis.com/v1beta1/projects/PROJECT_ID/events:report?key=API_KEY
Confirmar o payload enviado
Verifique se o aplicativo está enviando dados de exceção à API no formato correto e se ele tem os atributos necessários.
Um stack trace é registrado, mas não é reconhecido pelo Error Reporting.
Você registra um erro usando o campo message
de um jsonPayload
e espera que
o Error Reporting capture o erro. No entanto, os dados de erro
não são capturados.
Para resolver esse problema, tente o seguinte:
Verifique se o
jsonPayload
não inclui um campostack_trace
ouexception
. Quando esses campos estão presentes, o campomessage
não é avaliado.Verifique se a estrutura do stack trace está em um dos formatos de linguagem de programação com suporte. O stack trace não é capturado pelo Error Reporting quando um formato sem suporte é usado.
Para mais informações, consulte Formatar erros nos registros.