Como os erros são agrupados

O Error Reporting agrupa os erros que têm a mesma causa raiz.

Antes do agrupamento

Antes de o Error Reporting avaliar um erro para então agrupá-lo, ele decide o seguinte:

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

Agrupamento

Quando o sistema avalia os erros, ele segue estes padrões gerais:

  • 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 juntos se tiverem sido criados pelo mesmo log statement, aproximado pelo local de origem onde foi relatado (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.

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