Encontre e diagnostique problemas de desempenho com o Application Insights

O Application Insights recolhe telemetria da aplicação para ajudar a analisar o funcionamento e o desempenho. Pode utilizar estas informações para identificar problemas que podem estar a ocorrer ou para identificar melhorias na aplicação que teriam um maior impacto nos utilizadores. Este tutorial guia-o ao longo do processo de analisar o desempenho dos componentes de servidor da sua aplicação e a perspetiva do cliente.

Sabe como:

  • Identifique o desempenho das operações do lado do servidor.
  • Analise as operações do servidor para determinar a causa raiz do desempenho lento.
  • Identifique as operações mais lentas do lado do cliente.
  • Analise detalhes de visualizações de página usando a linguagem de consulta.

Pré-requisitos

Para concluir este tutorial:

  • Instale o Visual Studio 2019 com as seguintes cargas de trabalho:
    • Desenvolvimento ASP.NET e Web
    • Desenvolvimento do Azure
  • Implantar um aplicativo .NET no Azure e habilitar o SDK do Application Insights
  • Ativar o gerador de perfis do Application Insights para a sua aplicação.

Iniciar sessão no Azure

Inicie sessão no portal do Azure.

Identificar as operações de servidor lentas

O Application Insights recolhe detalhes de desempenho das várias operações da sua aplicação. Ao identificar as operações com maior duração, você pode diagnosticar possíveis problemas ou direcionar seu desenvolvimento contínuo para melhorar o desempenho geral do aplicativo.

  1. Selecione Application Insights e, em seguida, selecione a sua subscrição.

  2. Para abrir o painel Desempenho, selecione Desempenho no menu Investigar ou selecione o gráfico de tempo de resposta do servidor.

    Captura de ecrã que mostra a vista Desempenho.

  3. A tela Desempenho mostra a contagem e a duração média de cada operação para o aplicativo. Você pode usar essas informações para identificar as operações que mais afetam os usuários. Neste exemplo, GET Customers/Details e GET Home/Index são candidatos prováveis à investigação, devido à relativamente elevada duração e ao número de chamadas. Outras operações poderiam ter uma duração maior, mas raramente eram chamadas, de modo que o efeito de sua melhoria seria mínimo.

    Captura de tela que mostra o painel Servidor de desempenho.

  4. O gráfico mostra a duração média das operações selecionadas ao longo do tempo. Pode mudar para o percentil 95 para localizar os problemas de desempenho. Adicione as operações em que está interessado fixando-as no gráfico. O gráfico mostra que há alguns picos que merecem ser investigados. Para isolá-los ainda mais, reduza a janela de tempo do gráfico.

    Captura de ecrã que mostra as operações de Pin.

  5. O painel de desempenho à direita mostra a distribuição das durações para pedidos diferentes para a operação selecionada. Reduza a janela para iniciar por volta do percentil 95. O cartão de insights das 3 principais dependências pode dizer rapidamente que as dependências externas provavelmente estão contribuindo para as transações lentas. Selecione o botão com o número de amostras para ver uma lista das amostras. Em seguida, selecione qualquer amostra para ver os detalhes da transação.

  6. Você pode ver rapidamente que a chamada para a Tabela do Azure da Fabrikamaccount contribui mais para a duração total da transação. Também pode ver uma exceção causou a falha. Selecione qualquer item na lista para ver seus detalhes no lado direito.

    Captura de tela que mostra os detalhes da transação de ponta a ponta da operação.

  7. O Profiler ajuda a ir mais longe com o diagnóstico em nível de código, mostrando o código real que foi executado para a operação e o tempo necessário para cada etapa. Algumas operações podem não ter um rastreamento porque o Profiler é executado periodicamente. Ao longo do tempo, mais operações devem ter rastreios. Para iniciar o Profiler para a operação, selecione Rastreamentos do Profiler.

  8. O rastreamento mostra os eventos individuais para cada operação para que você possa diagnosticar a causa raiz para a duração da operação geral. Selecione um dos principais exemplos com maior duração.

  9. Selecione Caminho ativo para realçar o caminho específico dos eventos que mais contribuem para a duração total da operação. Neste exemplo, você pode ver que a chamada mais lenta é do FabrikamFiberAzureStorage.GetStorageTableData método. A parte que leva mais tempo é o CloudTable.CreateIfNotExist método. Se esta linha de código for executada sempre que a função for chamada, serão consumidos recursos desnecessários de chamada de rede e CPU. A melhor maneira de corrigir seu código é colocar essa linha em algum método de inicialização que seja executado apenas uma vez.

    Captura de tela que mostra os detalhes do Profiler.

  10. A dica de desempenho na parte superior da tela suporta a avaliação de que a duração excessiva é por causa da espera. Selecione o link de espera para obter documentação sobre a interpretação dos diferentes tipos de eventos.

    Captura de tela que mostra uma dica de desempenho.

  11. Para análise adicional, selecione Download Trace para baixar o rastreamento. Você pode exibir esses dados usando PerfView.

Usar dados de logs para o servidor

Logs fornece uma linguagem de consulta avançada que você pode usar para analisar todos os dados coletados pelo Application Insights. Você pode usar esse recurso para realizar análises detalhadas sobre dados de solicitação e desempenho.

  1. Retorne ao painel de detalhes da operação e selecione Ícone LogsExibir em logs (Analytics).

  2. A tela Logs é aberta com uma consulta para cada um dos modos de exibição no painel. Pode executar estas consultas como estão ou modificá-las de acordo com os seus requisitos. A primeira consulta mostra a duração desta operação ao longo do tempo.

    Captura de ecrã que mostra uma consulta de registos.

Identificar as operações do cliente lentas

Além de identificar os processos de servidor a otimizar, o Application Insights pode analisar a perspetiva dos browsers cliente. Essas informações podem ajudá-lo a identificar possíveis melhorias nos componentes do cliente e até mesmo identificar problemas com navegadores diferentes ou locais diferentes.

  1. Selecione Navegador em Investigar e, em seguida, selecione Desempenho do navegador. Como alternativa, selecione Desempenho em Investigar e alterne para a guia Navegador selecionando o botão de alternância Servidor/Navegador no canto superior direito para abrir o resumo do desempenho do navegador. Esta vista fornece um resumo visual de várias telemetrias da sua aplicação a partir da perspetiva do browser.

    Captura de tela que mostra o resumo do navegador.

  2. Selecione um dos nomes de operação, selecione o botão Amostras no canto inferior direito e, em seguida, selecione uma operação. Os detalhes da transação de ponta a ponta são abertos no lado direito, onde você pode visualizar as Propriedades de Exibição de Página. Você pode visualizar os detalhes do cliente que solicita a página, incluindo o tipo de navegador e sua localização. Estas informações podem ajudá-lo a determinar se existem problemas de desempenho relacionados com tipos de clientes específicos.

    Captura de ecrã que mostra as Propriedades da Vista de Página.

Usar dados de logs para o cliente

Assim como os dados coletados para o desempenho do servidor, o Application Insights disponibiliza todos os dados do cliente para análise profunda usando logs.

  1. Retorne ao resumo do navegador e selecione Ícone Logs Exibir em logs (Analytics).

  2. A tela Logs é aberta com uma consulta para cada um dos modos de exibição no painel. A primeira consulta mostra a duração das diferentes vistas de página ao longo do tempo.

    Captura de ecrã que mostra o ecrã Logs.