Localizar e diagnosticar 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.

Saiba como:

  • Identifique o desempenho das operações do lado do servidor.
  • Analise as operações do servidor para determinar a causa principal do desempenho lento.
  • Identifique as operações mais lentas do lado do cliente.
  • Analise os detalhes das vistas de página com 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
  • Implementar uma aplicação .NET no Azure e ativar 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 a duração mais longa, pode diagnosticar potenciais problemas ou direcionar o seu desenvolvimento contínuo para melhorar o desempenho geral da aplicação.

  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 Tempo de resposta do servidor.

    Captura de ecrã que mostra a vista Desempenho.

  3. O ecrã Desempenho mostra a contagem e a duração média de cada operação para a aplicação. Pode utilizar estas informações para identificar as operações que mais afetam os utilizadores. 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 podem ter uma duração mais alta, mas raramente eram chamadas, pelo que o efeito da sua melhoria seria mínimo.

    Captura de ecrã 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 que lhe interessam ao afixá-las ao gráfico. O gráfico mostra que há alguns picos que vale a pena investigar. Para isolá-los ainda mais, reduza a janela de tempo do gráfico.

    Captura de ecrã a mostrar operações de afixação.

  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 Top 3 Dependencies insights pode indicar rapidamente que as dependências externas estão provavelmente a contribuir para as transações lentas. Selecione o botão com o número de exemplos para ver uma lista dos exemplos. Em seguida, selecione qualquer exemplo para ver os detalhes da transação.

  6. Pode ver rapidamente que a chamada para a Tabela do Azure 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 os respetivos detalhes no lado direito.

    Captura de ecrã que mostra os detalhes da transação ponto a ponto da operação.

  7. O Profiler ajuda a aprofundar os diagnósticos ao nível do código ao mostrar o código real que foi executado para a operação e o tempo necessário para cada passo. Algumas operações podem não ter rastreio porque o Profiler é executado periodicamente. Ao longo do tempo, mais operações devem ter rastreios. Para iniciar o Profiler para a operação, selecione Rastreios do Profiler.

  8. O rastreio mostra os eventos individuais de cada operação para que possa diagnosticar a causa principal durante a operação geral. Selecione um dos principais exemplos com a duração mais longa.

  9. Selecione Caminho de acesso frequente para realçar o caminho específico dos eventos que mais contribuem para a duração total da operação. Neste exemplo, pode ver que a chamada mais lenta é do FabrikamFiberAzureStorage.GetStorageTableData método . A parte que demora mais tempo é o CloudTable.CreateIfNotExist método . Se esta linha de código for executada sempre que a função for chamada, a chamada de rede desnecessária e os recursos da CPU serão consumidos. A melhor forma de corrigir o código é colocar esta linha num método de arranque que execute apenas uma vez.

    Captura de ecrã que mostra os detalhes do Profiler.

  10. A Sugestão de Desempenho na parte superior do ecrã suporta a avaliação de que a duração excessiva se deve à espera. Selecione a ligação de espera para obter documentação sobre a interpretação dos diferentes tipos de eventos.

    Captura de ecrã que mostra uma Sugestão de Desempenho.

  11. Para análise adicional, selecione Transferir Rastreio para transferir o rastreio. Pode ver estes dados com o PerfView.

Utilizar dados de registos para o servidor

Os registos fornecem uma linguagem de consulta avançada que pode utilizar para analisar todos os dados recolhidos pelo Application Insights. Pode utilizar esta funcionalidade para efetuar análises aprofundadas sobre os dados de pedido e desempenho.

  1. Regresse ao painel de detalhes da operação e selecione o ícone RegistosVer em Registos (Análise).

  2. O ecrã Registos é aberto com uma consulta para cada uma das vistas 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. Estas informações podem ajudá-lo a identificar potenciais melhorias nos componentes do cliente e até identificar problemas com diferentes browsers ou localizações diferentes.

  1. Selecione Browser em Investigar e, em seguida, selecione Desempenho do Browser. Em alternativa, selecione Desempenho em Investigar e mude para o separador Browser ao selecionar o botão de alternar Servidor/Browser no canto superior direito para abrir o resumo de desempenho do browser. Esta vista fornece um resumo visual de várias telemetrias da sua aplicação na perspetiva do browser.

    Captura de ecrã que mostra o resumo do Browser.

  2. Selecione um dos nomes da operação, selecione o botão Exemplos na parte inferior direita e, em seguida, selecione uma operação. Os detalhes da transação ponto a ponto são abertos no lado direito, onde pode ver as Propriedades da Vista de Página. Pode ver os detalhes do cliente que pede a página, incluindo o tipo de browser e a respetiva 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 Propriedades da Vista de Página.

Utilizar dados de registos para o cliente

Tal como os dados recolhidos para o desempenho do servidor, o Application Insights disponibiliza todos os dados de cliente para análise aprofundada através de registos.

  1. Regresse ao resumo do browser e selecione o ícone RegistosVer nos Registos (Análise).

  2. O ecrã Registos é aberto com uma consulta para cada uma das vistas 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ã Registos.