O que é o Application Insights?
O Application Insights analisa o desempenho do seu aplicativo Web e pode avisá-lo sobre possíveis problemas.
Esse recurso não requer nenhuma configuração especial além de configurar seu aplicativo para o Application Insights (em ASP.NET, Java ou Node.js e no código da página da Web). Ele fica ativo quando seu aplicativo gera telemetria suficiente.
Quando receberia uma notificação de Deteção Inteligente?
O Application Insights envia uma notificação quando deteta que o desempenho do seu aplicativo se degradou de uma destas maneiras:
- Degradação do tempo de resposta: seu aplicativo começou a responder às solicitações mais lentamente do que antes. A mudança pode ter sido repentina — por exemplo, se houve uma regressão na implantação mais recente — ou a degradação pode ter sido gradual, talvez porque haja um vazamento de memória.
- Degradação da duração da dependência: seu aplicativo faz chamadas para uma API REST, banco de dados ou outra dependência. A dependência está respondendo mais lentamente do que antes.
- Padrão de desempenho lento: seu aplicativo tem um problema de desempenho que afeta apenas algumas solicitações. Por exemplo, as páginas estão carregando mais lentamente em um tipo de navegador do que em outros, ou as solicitações estão sendo atendidas mais lentamente a partir de um servidor específico. Os algoritmos do Application Insights examinam os tempos de carregamento de página, os tempos de resposta de solicitação e os tempos de resposta de dependência.
A Deteção Inteligente é um recurso do Application Insights que avisa sobre possíveis problemas de desempenho e anomalias de falha em seu aplicativo Web. Requer pelo menos oito dias de telemetria a um volume suficiente para estabelecer uma linha de base. Após esse período, qualquer problema significativo produz uma notificação.
Um alerta significa sempre um problema?
Um alerta não significa necessariamente que seu aplicativo tenha um problema. É mais uma sugestão sobre algo que você pode querer olhar mais de perto.
Como resolvo problemas?
Cada notificação de alerta inclui informações de diagnóstico. Aqui está um exemplo de como você pode usar essas informações:
- Para triagem: a notificação mostra quantos usuários ou quantas operações são afetadas. Isso pode ajudá-lo a atribuir uma prioridade ao problema.
- Para determinar o escopo: o problema está afetando todo o tráfego ou apenas algumas páginas? É restrito a navegadores ou locais específicos?
- Para diagnósticos: Muitas vezes, as informações de diagnóstico na notificação sugerem a natureza do problema. Por exemplo, se os tempos de resposta diminuírem quando a taxa de solicitação for alta, isso sugere que o servidor ou as dependências estão sobrecarregados. Se precisar de mais informações, abra a seção Desempenho no Application Insights. Lá, você encontra dados do profiler. Se exceções foram lançadas, você também pode tentar o depurador de instantâneo.
Configurar as notificações por e-mail
As notificações de Deteção Inteligente são habilitadas por padrão e enviadas para aqueles que têm acesso de proprietários, colaboradores e leitores ao recurso do Application Insights. Para alterar isso, selecione Configurar na notificação por e-mail ou abra as configurações de Deteção inteligente no Application Insights.
Você pode usar o link de cancelamento de inscrição no e-mail do Smart Detection para parar de receber notificações por e-mail.
Os e-mails sobre anomalias de desempenho do Smart Detection são limitados a um e-mail por dia por recurso do Application Insights. O e-mail é enviado somente se houver pelo menos um novo problema detetado naquele dia.
Como posso melhorar o desempenho?
Respostas lentas e fracassadas são frustrantes para os usuários do site. É importante resolver os problemas rapidamente. As medidas a tomar para melhorar o desempenho são:
- Triagem
- Diagnosticar
- Melhore
Vamos examinar essas etapas mais de perto, em termos de tempos de carregamento de página.
Triagem
Ao olhar para o assunto, a primeira coisa a perguntar é: isso importa? Se uma página é sempre lenta para carregar, mas apenas 1% dos usuários do seu site já a olham, então o problema é de baixa prioridade. Por outro lado, se apenas 1% dos usuários abrirem a página, mas ela abrir uma exceção toda vez, a prioridade é alta. Use a declaração de impacto (usuários afetados ou porcentagem de tráfego) como um guia geral, mas esteja ciente de que o impacto não é toda a história. Reúna outras evidências e considere os parâmetros da questão. Se o problema depender da geografia, configure testes de disponibilidade que incluam a região.
Diagnosticar carregamentos lentos de páginas
Ao diagnosticar o problema, faça a si mesmo estas perguntas:
- Onde está o problema?
- O servidor demora a responder?
- A página é longa?
- O navegador tem que fazer muito trabalho para exibir esta página?
Se você estiver investigando os tempos de resposta do navegador, abra a métrica Navegadores. A exibição segmentada dos tempos de carregamento da página do navegador mostra para onde o tempo está indo.
- Se o tempo de solicitação de envio for alto, o servidor está respondendo lentamente ou a solicitação é um POST com uma grande quantidade de dados. Analise as métricas de desempenho para investigar os tempos de resposta.
- Configure o controle de dependência para ver se o atraso se deve a serviços externos ou ao seu banco de dados.
- Se Receber Resposta for predominante, sua página e suas partes dependentes — JavaScript, CSS, imagens e assim por diante (mas não dados carregados de forma assíncrona) — serão longas. Configure um teste de disponibilidade e certifique-se de definir a opção para carregar partes dependentes. Quando você obtiver alguns resultados, abra os detalhes de um resultado e expanda-o para ver os tempos de carregamento de arquivos diferentes.
- Um alto tempo de processamento do cliente sugere que os scripts estão sendo executados lentamente. Se o motivo não for óbvio, considere adicionar algum código de tempo e enviar os horários em
trackMetric
chamadas.
Melhorar páginas lentas
Aqui estão alguns lugares para começar a pensar em como melhorar páginas lentas:
- Carregamento lento devido a arquivos grandes: carregue os scripts e outras partes de forma assíncrona. Use a agregação de scripts. Divida a página principal em widgets que carregam seus dados separadamente. Não envie HTML antigo simples para tabelas longas; use um script para solicitar os dados como JSON ou outro formato compacto e, em seguida, preencha a tabela no lugar.
- Dependências lentas do servidor: considere as localizações geográficas dos seus componentes. Por exemplo, se estiver a utilizar o Azure, certifique-se de que o servidor Web e a base de dados estão na mesma região. As consultas recuperam mais informações do que precisam? O armazenamento em cache ou em lote ajudaria?
- Problemas de capacidade: observe as métricas do servidor de tempos de resposta e contagens de solicitações. Se os tempos de resposta atingirem um pico desproporcional com picos nas contagens de solicitações, é provável que seus servidores estejam trabalhando muito. Considere aumentar ou diminuir a escala.
Degradação do tempo de resposta do servidor
Uma notificação de degradação do tempo de resposta informa:
- O tempo de resposta em comparação com o tempo de resposta normal para esta operação.
- Quantos usuários são afetados.
- Tempo médio de resposta e tempo de resposta do percentil 90 para esta operação no dia da deteção e sete dias antes.
- Contagem de pedidos de operação no dia da deteção e sete dias antes.
- Correlação entre degradação nesta operação e degradações em dependências relacionadas.
- Recursos para ajudá-lo a diagnosticar o problema:
- Os rastreamentos do Profiler ajudam a visualizar onde o tempo de operação é gasto (o link estará disponível se exemplos de rastreamento do Profiler tiverem sido coletados para essa operação durante o período de deteção).
- Relatórios de desempenho no Metric Explorer, onde você pode examinar intervalos de tempo e filtros para esta operação.
- Pesquise para procurar esta chamada para ver propriedades de chamada específicas.
- Relatórios de falhas. Se a contagem for maior que 1, isso significa que houve falhas nessa operação que podem ter contribuído para a degradação do desempenho.
Degradação da duração da dependência
Se seu aplicativo depende muito de serviços externos, é uma boa ideia observar a degradação da dependência.
Aqui está um exemplo de notificação de degradação de dependência:
Isto diz-lhe:
- A duração em comparação com o tempo de resposta normal para esta operação.
- Quantos usuários são afetados.
- Duração média e duração do percentil 90 para esta dependência no dia da deteção e sete dias antes.
- O número de chamadas de dependência no dia da deteção e sete dias antes.
- Recursos para ajudá-lo a diagnosticar o problema:
- Relatórios de desempenho no Metric Explorer para essa dependência.
- Pesquise as chamadas dessa dependência para exibir as propriedades da chamada.
- Relatórios de falhas. Se houver uma ou mais falhas, isso indica que houve chamadas de dependência com falha durante o período de deteção que podem ter contribuído para a degradação da duração.
- Abra o Google Analytics com consultas que calculam a duração e a contagem dessa dependência.
Deteção inteligente de padrões de desempenho lento
O Application Insights encontra problemas de desempenho que podem afetar apenas uma parte dos usuários ou apenas alguns casos. Por exemplo, você pode ver que carregamentos lentos de páginas acontecem apenas com um tipo de navegador ou em uma determinada área geográfica.
Anomalias como essas são difíceis de detetar apenas inspecionando os dados, mas são mais comuns do que você imagina. Muitas vezes, eles só aparecem quando seus clientes reclamam.
Os algoritmos do Application Insights examinam os tempos de carregamento de página, os tempos de resposta de solicitação no servidor e os tempos de resposta de dependência. Não é necessário definir limites ou configurar regras. Algoritmos de aprendizado de máquina e mineração de dados são usados para detetar padrões anormais. Eis um exemplo de uma notificação:
O campo Quando mostra a hora em que o problema foi detetado.
O campo O que descreve:
- O problema que foi detetado.
- Os eventos que levaram ao comportamento problemático.
A tabela compara o conjunto de baixo desempenho com o comportamento médio de todos os outros eventos.
Selecione os links para abrir o Metric Explorer e a Pesquisa para encontrar relatórios relevantes que são filtrados sobre o tempo e as propriedades do conjunto de desempenho lento e, em seguida, modifique o intervalo de tempo e os filtros para explorar a telemetria.