Após instale um agente para uma aplicação Java, o ARMS inicia o monitoramento. Na página Exception Analysis, filtre e analise exceções por nome, interface e host para otimizar o código causador dos erros.
Visualize análise de exceções
-
Na barra de navegação superior, escolha .
Na área de filtro rápido, filtre a contagem e a lista de exceções por Exception, Operation e Host.
-
Na área do gráfico de tendências, visualize quantas vezes a aplicação lançou uma exceção específica em um intervalo de tempo definido. As exceções aparecem em um gráfico empilhado.
Clique em no ícone
para visualizar estatísticas da métrica em um período específico ou comparar estatísticas do mesmo período em datas diferentes. Para alternar entre gráfico de barras e gráfico de tendências, clique em no ícone
. -
Na área da lista de exceções, visualize nomes, contagens, porcentagens e resumos das exceções.
Na lista de exceções, execute as seguintes operações:
-
Clique em Overview na coluna Actions para abrir um painel à direita. Esse painel exibe uma visão geral da exceção, incluindo tendência de contagem, distribuição por interface e instância, além da pilha de exceções.

Clique em Traces na coluna Actions para visualizar os detalhes do trace. Para mais informações, consulte Trace Explorer.
-
Documentos relacionados
Para obter informações detalhadas sobre métricas de monitoramento de aplicações, consulte Application monitoring metrics.
FAQ
Por que a contagem de exceções excede a contagem de requisições?
Isso pode ocorrer pelos seguintes motivos:
O ARMS registra uma exceção sempre que um método instrumentado a lança. Se vários métodos instrumentados lançarem exceções durante uma única chamada de interface, o ARMS registrará cada uma delas, resultando em múltiplos registros para uma única chamada.
Quando a mesma exceção se propaga pela pilha de chamadas através de vários métodos instrumentados, cada um desses métodos pode registrar a exceção, gerando múltiplas contagens para uma única ocorrência.
Por que as contagens de exceções mudam após uma atualização?
Cada versão do agente pode aumentar ou diminuir o número de métodos instrumentados. Consequentemente, o número de exceções capturadas nesses métodos também pode variar.
Por que exceções não tratadas são exibidas?
Em muitos métodos de nível de framework instrumentados pelo agente, as exceções podem ser capturadas e tratadas internamente sem se propagarem para o seu código de negócio. O agente captura essas exceções mesmo que sua aplicação não tenha conhecimento delas.
Por exemplo, uma chamada ao MongoDB usando MongoTemplate pode não gerar erro na sua aplicação, mas você pode ver erros no console do ARMS. Isso acontece porque MongoTemplate encapsula lógica de nova tentativa. Quando uma chamada de método do MongoTemplate encontra um timeout, ela tenta repetir a operação. Uma exceção é lançada para o chamador somente após várias tentativas falharem. Portanto, ao usar MongoTemplate para acessar o MongoDB e ocorrer uma nova tentativa devido a timeout, sua aplicação pode não detectar a exceção, mas o console do ARMS sim.
Por que há incompatibilidade entre stack traces e exceções?
Para melhorar a eficiência do processamento de dados e dos relatórios, o agente do ARMS gera uma impressão digital para cada exceção com base no nome da classe, nas três primeiras linhas e nas três últimas linhas do stack trace. Essa impressão digital é codificada em uma string de 64 bits usando CRC64. Na primeira ocorrência, o agente reporta tanto o valor codificado quanto o stack trace original. Para exceções idênticas subsequentes, apenas o valor codificado é reportado. Esse processo pode causar incompatibilidades em duas situações:
Duas exceções possuem stack traces completos diferentes, mas compartilham o mesmo nome de classe de exceção e as mesmas três primeiras e últimas linhas do stack trace. Devido à lógica de impressão digital, seus valores codificados serão idênticos, levando a uma incompatibilidade.
Duas exceções têm nomes de classe diferentes ou diferenças nas três primeiras e últimas linhas do stack trace, mas ocorre uma colisão de hash porque o CRC64 é um algoritmo de codificação não exclusivo. Isso pode resultar no mesmo valor codificado para exceções distintas.
Se alguma dessas situações ocorrer, aumente o parâmetro similar exception stack differentiation depth na seção Exception Advanced Filtering Configuration da página Custom Configuration. A página de configuração avançada de filtragem de exceções inclui as seguintes definições: Collect Plugin Exceptions (controla a coleta de exceções de plugins), Collect All Exceptions (instrumenta construtores de exceção para capturar todas as exceções quando ativado), Similar exception stack differentiation depth (valor padrão: 2; usado para diferenciar exceções semelhantes com base na profundidade da pilha), Exception Filtering Whitelist (exceções na lista de permissões são excluídas dos gráficos relacionados a exceções), Exception Filtering Parent Class Inheritance (suportado apenas no agente v4.1.6 e posterior) e Exception Message Filtering.
Por que exceções antigas mostram apenas um ID?
Para otimizar o volume de reporte de dados, quando uma exceção ocorre pela primeira vez, o ARMS a codifica e envia tanto o valor codificado quanto o valor original para o servidor. O servidor armazena esse mapeamento, que expira após 30 dias. Se uma aplicação executar por mais de 30 dias, o valor original de uma exceção pode não ser mais recuperável a partir do seu valor codificado.
Por que algumas exceções não são exibidas?
Por padrão, o agente do ARMS não captura todas as exceções. Apenas exceções lançadas por métodos instrumentados pelo agente do ARMS são coletadas.
Se você estiver usando a versão 4.1.12 ou posterior do agente, ative o plugin de exceções na seção Agent Switch Settings da página Custom Configuration. Após ative esse plugin, o ARMS coleta dados de exceção sempre que uma instância de exceção for criada.