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