Se os erros do seu aplicativo não estiverem aparecendo no Error Reporting, use as etapas a seguir para solucionar o problema.
Antes de começar
Verifique se o Error Reporting pode analisar seus registros.
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 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 Verificar a ativação da chave.
- O bucket de registros atende a um dos seguintes critérios:
- O bucket de registros é armazenado no mesmo projeto de origem dos registros.
- Os registros foram roteados para um projeto, e esse projeto os armazenou em um bucket de registros de sua propriedade.
Para ver se o Error Reporting pode analisar seus registros, verifique se você os está armazenando em buckets na região
global
, em que os projetos de origem e 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 pelos coletores
_Default
,_Required
elogs-from-samples
porque eles estão encaminhando registros para buckets que estão na regiãoglobal
no mesmo projeto. - O Error Reporting não pode 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 coletor
regional_logs
porque ele encaminha os 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 o componente
beta
está 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 em buckets do Cloud Logging e você depende do Error Reporting para analisar automaticamente esses buckets de registros.
Gerar uma amostra de entrada de registro
Para confirmar as configurações do projeto, é possível gerar de maneira programática uma entrada de registro que será captada 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
-
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 para a API no formato correto e se ele tem os atributos necessários.