Se os erros do seu 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 seus registros.
Error Reporting é um serviço global criado no Cloud Logging que analisa entradas de registro quando todas as condições a seguir forem verdadeiras:
- As entradas de registro são armazenadas em um bucket de registros no local
global
. - As chaves de criptografia gerenciadas pelo cliente (CMEK) estão desativadas no bucket de registros. Para informações sobre como determinar a configuração da CMEK para um bucket de registros, consulte Verifique a ativação da chave.
- O bucket de registros atende a um dos itens a seguir:
- O bucket de registros é armazenado no mesmo projeto se originou.
- Os registros eram encaminhados para um projeto, que os armazenou em um bucket de registros próprio.
Para ver se o Error Reporting pode analisar seus registros, confirme se você estão armazenando seus registros em buckets na região
global
, onde a origem e e os projetos de destino do Google Cloud são os mesmos.Para ver uma lista dos coletores configurados, execute o seguinte comando:
gcloud logging sinks list
O comando retorna uma resposta 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 dos registros é
my-team-project
. O resultado disso é o seguinte:- O Error Reporting pode analisar os registros roteados por
_Default
,_Required
elogs-from-samples
porque estão roteando registros aos buckets que estão na regiãoglobal
dentro do mesmo projeto. - O Error Reporting não consegue analisar os registros armazenados no bucket de registros
chamado
test-logs
porque o coletor emmy-team-project
encaminha os registros para um bucket de registros em um projeto diferente. - O Error Reporting não pode analisar os registros roteados pelo
regional_logs
afundar porque ele encaminha registros para um bucket regional na regiãoeurope-west1
.
- As entradas de registro são armazenadas em um bucket de registros no local
Verifique se você tem a Google Cloud CLI instalada.
Verifique se você tem a Componente
beta
ativado para a CLI gcloud.
Ao usar os registros
Esta seção fornece suporte para solução de problemas quando seus dados de erro são gravados aos buckets do Cloud Logging e usa o Error Reporting para analisar esses buckets de registros automaticamente.
Gerar uma amostra de entrada de registro
Para confirmar as configurações do seu projeto, você pode gerar uma entrada de registro de forma programática
que serão detectados pelo Error Reporting com as seguintes gcloud
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}}}'
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
-
Ative a API necessária.
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 que contém os atributos necessários.