Partilhar via


Deteção inteligente - Anomalias de desempenho

Nota

Você pode migrar seus recursos do Application Insight para a deteção inteligente baseada em alertas (visualização). A migração cria regras de alerta para os diferentes módulos da deteção inteligente. Depois de criadas, pode gerir e configurar essas regras como qualquer outra regra de alerta do Azure Monitor. Também pode configurar grupos de ação para essas regras, permitindo assim múltiplos métodos para realizar ações ou acionar a notificação de novas deteções.

Para obter mais informações sobre o processo de migração, consulte Migração de alertas de deteção inteligente.

O Application Insights analisa automaticamente 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 para o idioma suportado. Ele fica ativo quando seu aplicativo gera telemetria suficiente.

Quando receberei uma notificação de deteção inteligente?

O Application Insights detetou 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 rápida, por exemplo, porque houve uma regressão na sua implantação mais recente. Ou pode ter sido gradual, talvez causado por 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 parece ter um problema de desempenho que está afetando 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. Atualmente, nossos algoritmos analisam os tempos de carregamento de página, os tempos de resposta de solicitação e os tempos de resposta de dependência.

Para estabelecer uma linha de base de desempenho normal, a deteção inteligente requer pelo menos oito dias de volume de telemetria suficiente. Após a execução do seu pedido durante esse período, anomalias significativas resultarão numa notificação.

Meu aplicativo definitivamente tem um problema?

Não, uma notificação não significa que seu aplicativo definitivamente tenha um problema. É simplesmente uma sugestão sobre algo que pode querer examinar mais detalhadamente.

Como faço para corrigi-lo?

As notificações incluem informações de diagnóstico. Eis um exemplo:

Aqui está um exemplo de deteção de degradação do tempo de resposta do servidor

  1. Triagem. A notificação mostra quantos usuários ou quantas operações são afetadas. Essas informações podem ajudá-lo a atribuir uma prioridade ao problema.

  2. Âmbito de aplicação. O problema está a afetar todo o tráfego ou apenas algumas páginas? É restrito a navegadores ou locais específicos? Estas informações podem ser obtidas na notificação.

  3. Diagnosticar. Muitas vezes, as informações de diagnóstico na notificação sugerirão a natureza do problema. Por exemplo, se o tempo de resposta diminuir quando a taxa de solicitação for alta, isso pode indicar que seu servidor ou dependências estão além de sua capacidade.

    Caso contrário, abra o painel Desempenho no Application Insights. Você encontrará lá os dados do Profiler . Se forem lançadas exceções, você também pode tentar o depurador de instantâneo.

Configurar Notificações por E-mail

As notificações de deteção inteligente são ativadas por padrão. Eles são enviados aos usuários que têm acesso ao Monitoring Reader e ao Monitoring Contributor à assinatura na qual o recurso do Application Insights reside. Para alterar a notificação padrão, clique em Configurar na notificação por e-mail ou abra Configurações de deteção inteligente no Application Insights.

Configurações de deteção inteligentes

  • Você pode desativar a notificação padrão e substituí-la por uma lista especificada de e-mails.

Os e-mails sobre anomalias de desempenho de deteção inteligente são limitados a um e-mail por dia por recurso do Application Insights. O e-mail será enviado somente se houver pelo menos um novo problema detetado naquele dia. Você não receberá repetições de nenhuma mensagem.

Perguntas mais frequentes

  • Então, a equipe da Microsoft analisa meus dados?

    • N.º O serviço é totalmente automático. Só você recebe as notificações. Os seus dados são privados.
  • Você analisa todos os dados coletados pelo Application Insights?

    • Atualmente, analisamos o tempo de resposta da solicitação, o tempo de resposta da dependência e o tempo de carregamento da página. A análise de outras métricas está em nosso backlog olhando para o futuro.
  • Para que tipos de aplicação funciona esta deteção?

    • Essas degradações são detetadas em qualquer aplicativo que gere a telemetria apropriada. Se você instalou o Application Insights em seu aplicativo Web, as solicitações e dependências serão rastreadas automaticamente. Mas em serviços de back-end ou outros aplicativos, se você inseriu chamadas para TrackRequest() ou TrackDependency, a deteção inteligente funcionará da mesma maneira.
  • Posso criar as minhas próprias regras de deteção de anomalias ou personalizar as regras existentes?

  • Com que frequência é feita a análise?

    • Executamos a análise diariamente na telemetria do dia anterior (dia inteiro no fuso horário UTC).
  • Isso substitui os alertas métricos?

    • N.º Não nos comprometemos a detetar todos os comportamentos que possa considerar anormais.
  • Se eu não fizer nada em resposta a uma notificação, receberei um lembrete?

    • Não, você recebe uma mensagem sobre cada problema apenas uma vez. Se o problema persistir, ele será atualizado no painel de alimentação de deteção inteligente.
  • Perdi o e-mail. Onde posso encontrar as notificações no portal?

    • Na visão geral do Application Insights do seu aplicativo, clique no bloco Deteção inteligente. Lá você encontrará todas as notificações até 90 dias atrás.

Como posso melhorar o desempenho?

Respostas lentas e fracassadas são uma das maiores frustrações para os usuários do site, como você sabe por experiência própria. Por isso, é importante abordar as questões.

Triagem

Em primeiro lugar, é importante? Se uma página é sempre lenta para carregar, mas apenas 1% dos usuários do seu site precisam olhar para ela, talvez você tenha coisas mais importantes para pensar. No entanto, se apenas 1% dos usuários abri-lo, mas ele lança exceções todas as vezes, isso pode valer a pena investigar.

Use a declaração de impacto, como usuários afetados ou % do tráfego, como um guia geral. Esteja ciente de que pode não estar contando toda a história. Reúna outras provas para confirmar.

Considere os parâmetros da questão. Se depender da geografia, configure testes de disponibilidade incluindo essa região: pode haver problemas de rede nessa área.

Diagnosticar carregamentos lentos de páginas

Onde está o problema? O servidor é lento para responder, a página é muito longa ou o navegador precisa de muito trabalho para exibi-la?

Abra o painel de métricas Navegadores. A exibição segmentada do tempo 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 é uma postagem com 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 a lentidão 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.
  • O 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 chamadas trackMetric.

Melhorar páginas lentas

Há uma web cheia de conselhos sobre como melhorar as respostas do servidor e os tempos de carregamento da página, por isso não vamos tentar repetir tudo aqui. Aqui estão algumas dicas que você provavelmente já conhece, apenas para você pensar:

  • 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. Existem ótimas estruturas para ajudar com essas tarefas. (Eles também incluem scripts grandes, é claro.)
  • 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 sobrecarregados.

Degradação do tempo de resposta do servidor

A notificação de degradação do tempo de resposta informa:

  • O tempo de resposta comparado 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 desta operação solicita no dia da deteção e sete dias antes.
  • Correlação entre degradação nesta operação e degradações em dependências relacionadas.
  • Links para ajudá-lo a diagnosticar o problema.
    • Os rastreamentos do Profiler podem ajudá-lo a visualizar onde o tempo de operação é gasto. O link estará disponível se existirem exemplos de rastreamento do Profiler para essa operação.
    • Relatórios de desempenho no Metric Explorer, onde você pode fatiar e segmentar o intervalo de tempo/filtros para esta operação.
    • Pesquise esta chamada para exibir propriedades de chamada específicas.
    • Relatórios de falhas - Se contar > 1, significa que houve falhas nesta operação que podem ter contribuído para a degradação do desempenho.

Degradação da Duração da Dependência

As aplicações modernas adotam frequentemente uma abordagem de conceção de microsserviços, que, em muitos casos, dependem fortemente de serviços externos. Por exemplo, se seu aplicativo depende de alguma plataforma de dados ou de um provedor de serviços críticos, como os serviços de IA do Azure.

Exemplo de notificação de degradação de dependência:

Aqui está um exemplo de deteção de degradação da duração da dependência

Observe que ele lhe diz:

  • A duração em comparação com o tempo de resposta normal para esta operação
  • Quantos utilizadores 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
  • Número de chamadas de dependência no dia da deteção e sete dias antes
  • Links para ajudá-lo a diagnosticar o problema
    • Relatórios de desempenho no Metric Explorer para essa dependência
    • Procurar estas chamadas de dependência para ver propriedades de chamadas
    • Relatórios de falhas - Se contar > 1, significa 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, se uma página carrega mais lentamente em um tipo de navegador específico em comparação com outros, ou se um determinado servidor lida com solicitações mais lentamente do que outros servidores. Ele também pode descobrir problemas associados a combinações de propriedades, como carregamentos de página lentos em uma área geográfica para clientes que usam um sistema operacional específico.

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. Por essa altura, já é tarde demais: os utilizadores afetados já estão a mudar para os seus concorrentes!

Atualmente, nossos algoritmos analisam 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.

No alerta de email, clique no link para abrir o relatório de diagnóstico no Azure

  • Quando mostra a hora em que o problema foi detetado.
  • O que descreve o problema que foi detetado e as características do conjunto de eventos que encontramos, que exibiram o comportamento do problema.
  • A tabela compara o conjunto de baixo desempenho com o comportamento médio de todos os outros eventos.

Clique nos links para abrir o Metric Explorer para exibir relatórios, filtrados pelo tempo e pelas propriedades do conjunto de desempenho lento.

Modifique o intervalo de tempo e os filtros para explorar a telemetria.

Próximos passos

Estas ferramentas de diagnóstico ajudam-no a inspecionar a telemetria a partir da sua aplicação:

A deteção inteligente é automática. Mas talvez você gostaria de configurar mais alguns alertas?