Resolver problemas

Se os erros do aplicativo não estiverem aparecendo no Error Reporting, siga as etapas abaixo para resolver o problema.

Antes de começar

  1. 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 e logs-from-samples porque eles estão roteando registros para buckets que estão na região global dentro do mesmo projeto.
    • O Error Reporting não pode analisar os registros armazenados no bucket de registros chamado test-logs porque o coletor em my-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ão europe-west1.
  2. Verifique se a Google Cloud CLI está instalada.

  3. 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.