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 seus registros.
O Error Reporting é um serviço global criado no Cloud Logging que analisa entradas de registro quando todas as condições a seguir são 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 requisitos:
- O bucket de registros é armazenado no mesmo projeto de origem dos registros.
- Os registros foram roteados para um projeto e, em seguida, esse projeto os armazenou em um bucket de registros próprio.
Para ver se o Error Reporting pode analisar seus registros, verifique se eles estão sendo armazenados 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 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 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 roteando registros para buckets que estão na regiãoglobal
dentro do 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
roteia os registros para um bucket de registros em um projeto diferente. - O Error Reporting não pode analisar registros roteados pelo coletor
regional_logs
porque roteia 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 a Google Cloud CLI está instalada.
Verifique se você tem o componente
beta
ativado para a CLI gcloud.
Ao usar os registros
Nesta seção, fornecemos suporte para solução de problemas quando os 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, você pode gerar de maneira programática uma entrada de registro que será selecionada 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
Ativar a API
No painel de navegação do console do Google Cloud, selecione APIs e serviços, clique em Ativar APIs e serviços e, em seguida, ative a API Error Reporting:
Acessar as configurações da API Error Reporting
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
e API_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.