Visão geral do Error Reporting

O Error Reporting agrega erros produzidos nos seus serviços em execução na nuvem. Esses erros são relatados pela API Error Reporting ou são inferidos como erros quando o Error Reporting inspeciona entradas de registro em busca de padrões de texto comuns, como stack traces. O Error Reporting agrupa os erros que têm a mesma causa raiz.

O Cloud Logging ativa o Error Reporting automaticamente quando um registro de usuário ingerido corresponde a qualquer um desses padrões.

Como o Error Reporting é um serviço global, ele só pode analisar entradas de registro armazenadas em buckets do Cloud Logging que estejam na região global, em que os projetos de origem e de destino do Google Cloud são os mesmos e em que as chaves de criptografia gerenciadas pelo cliente (CMEK) estão desativadas. Se você rotear registros para um projeto diferente do Google Cloud, buckets regionalizados ou ativar as CMEKs, o Error Reporting não vai capturar e analisar esses registros.

O Error Reporting processa até 1.000 erros por hora. Quando esse limite é atingido, as contagens exibidas são estimadas. Se muitos eventos são recebidos, o Error Reporting faz amostras de até 100 erros por hora e continua a extrapolar as contagens.

Como os erros são agrupados

Quando o Error Reporting avalia as entradas de registro, ele ignora as entradas com as seguintes condições:

  • No ambiente padrão do App Engine, os erros registrados com gravidade menor que ERROR são ignorados.
  • Os frames de pilha que não pertencem ao usuário são ignorados (aqueles que pertencem às bibliotecas públicas, por exemplo).
  • Todas as sequências repetidas de um ou mais frames de pilha são substituídas por uma ocorrência única daquela sequência.
  • Métodos introduzidos por compilador e símbolos são removidos.

Em seguida, o Error Reporting segue estes padrões gerais para agrupar erros:

  • As exceções são agrupadas se tiverem o mesmo tipo e pilhas semelhantes.
  • O rastreamento de pilha é ignorado para exceções que geralmente não estão relacionadas ao local de origem onde elas ocorrem.
  • Os erros sem uma pilha de exceção são agrupados se tiverem sido criados pela mesma entrada de registro, aproximado pelo local de origem onde foi informado (reportLocation).

As seguintes regras de agrupamento são aplicadas, especificamente, nesta ordem:

Tipo de erro Agrupados por
Erros causados por um problema geral no ambiente.

Por exemplo, problemas específicos do App Engine:


com.google.apphosting.runtime.HardDeadlineExceededError

com.google.appengine.api.datastore.DatastoreTimeoutException

Problemas do Java:


java.util.concurrent.CancellationException
Agrupados por tipo de exceção.
Erros com um rastreamento de pilha. No caso de exceções aninhadas, é considerada aquela mais interna.

Exemplo:


runtime error: index out of range
package1.func1()
      file1:20
package2.func2()
      file2:33
Agrupados por tipo de exceção e pelos cinco frames principais.
Erros sem um stack trace, mas com uma mensagem.

Exemplo:


runtime error: index out of range
    func1()
Agrupados por mensagem e, se presente, pelo nome da função. Apenas os três primeiros tokens principais da mensagem são considerados. No exemplo à esquerda, eles são runtime, error e index.

A seguir