Usar o Application Insights para localizar e diagnosticar problemas de desempenho em um aplicativo
O Application Insights coleta a telemetria de um aplicativo para ajudar na análise da operação e do desempenho dele. Com essas informações, você pode identificar possíveis problemas ou as melhorias no aplicativo que mais afetariam os usuários. Este tutorial o conduz pelo processo de analisar o desempenho dos componentes do servidor do seu aplicativo e a perspectiva do cliente.
Você aprenderá como:
- Identifique o desempenho das operações do servidor.
- Analise as operações do servidor para determinar a causa raiz do desempenho lento.
- Identifique as operações mais lentas para o cliente.
- Analise os detalhes das exibições de página com linguagens de consulta.
Pré-requisitos
Para concluir este tutorial:
- Instale o Visual Studio 2019 com as cargas de trabalho a seguir:
- Desenvolvimento Web e ASP.NET
- Desenvolvimento do Azure
- Implantar um aplicativo .NET no Azure e habilitar o SDK do Application Insights
- Habilitar o Application Insights Profiler para seu aplicativo.
Entrar no Azure
Entre no portal do Azure.
Identificar operações lentas do servidor
O Application Insights coleta detalhes de desempenho para as diferentes operações em seu aplicativo. Ao identificar as operações com maior duração, é possível diagnosticar possíveis problemas ou direcionar o desenvolvimento contínuo para melhorar o desempenho geral do aplicativo.
Selecione Application Insights e, em seguida, selecione sua assinatura.
Para abrir o painel Desempenho, selecione Desempenho no menu Investigar ou clique no gráfico de Tempo de resposta do servidor.
A tela Desempenho mostra a contagem e a duração média de cada operação para o aplicativo. É possível 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 à duração e número de chamadas relativamente grandes. Outras operações raramente chamadas podem ter uma duração maior, mas sua melhora teria um efeito mínimo.
Atualmente, o gráfico mostra a duração média de todas as operações ao longo do tempo. Você pode alternar para o 95º percentil para encontrar os problemas de desempenho. Adicione as operações de seu interesse fixando-as no gráfico. O gráfico mostra que há alguns picos a serem investigados. Para isolá-los ainda mais, reduza a janela de tempo do gráfico.
O painel de desempenho à direita mostra a distribuição de durações para diferentes solicitações da operação selecionada. Reduza a janela para iniciar em torno do 95º percentil. O cartão de insights Três principais dependências pode informar rapidamente que as dependências externas provavelmente estão contribuindo para transações lentas. Pressione o botão com o número de exemplos para ver uma lista deles. Em seguida, selecione qualquer exemplo para ver os detalhes da transação.
É possível ver rapidamente que a chamada para a tabela Fabrikamaccount Azure é a que mais contribui para a duração total da transação. Também é possível ver que uma exceção causou a falha. Selecione qualquer item na lista para ver seus detalhes no lado direito.
O Profiler ajuda a aprofundar os diagnósticos no nível do 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 rastreamentos. Para iniciar o Profiler para uma operação, selecione Rastreamentos do Profiler.
O rastreamento mostra os eventos individuais de cada operação para que seja possível diagnosticar a causa raiz durante a operação geral. Selecione um dos principais exemplos com maior duração.
Selecione Caminho crítico para realçar o caminho específico de eventos que mais contribuem para a duração total da operação. Neste exemplo, é possível ver que a chamada mais lenta é a do método
FabrikamFiberAzureStorage.GetStorageTableData
. A parte que leva mais tempo é o métodoCloudTable.CreateIfNotExist
. Se esta linha de código for executada toda vez que a função for chamada, chamadas de rede e recursos de CPU desnecessários serão consumidos. A melhor maneira de corrigir o código é colocar essa linha em algum método de inicialização que seja executado somente uma vez.A Dica de Desempenho na parte superior da tela é compatível com a avaliação de que a duração excessiva é devido à espera. Selecione o link de espera para ver uma documentação sobre a interpretação dos diferentes tipos de eventos.
Para realizar análises adicionais, clique em Baixar rastreamento e baixe o rastreamento. É possível exibir esses dados usando o PerfView.
Usar dados de logs para o servidor
Os logs fornecem uma linguagem de consulta avançada que pode ser usada para analisar todos os dados coletados pelo Application Insights. É possível usar esse recurso para realizar análises profundas em dados de solicitação e desempenho.
Retorne ao painel de detalhes da operação e clique no Exibir em Logs (Analytics).
A tela Logs é aberta com uma consulta para cada uma das exibições no painel. Você pode executar essas consultas como elas estão ou modificá-las conforme suas necessidades. A primeira consulta mostra a duração para essa operação ao longo do tempo.
Identificar operações lentas do cliente
Além de identificar os processos do servidor a otimizar, o Application Insights pode analisar a perspectiva de navegadores cliente. Essas informações podem ajudar na identificação de possíveis melhorias nos componentes do cliente e até mesmo de problemas com diferentes navegadores ou locais.
Selecione Navegador em Investigar e clique em Desempenho do navegador. Como alternativa, selecione Desempenho em Investigar e alterne para a guia Navegador pressionando o botão de alternância Servidor/Navegador no canto superior direito para abrir o resumo de desempenho do navegador. Essa exibição fornece um resumo visual de diversas telemetrias do aplicativo da perspectiva do navegador.
Selecione um dos nomes de operação, pressione o botão Exemplos no canto inferior direito e clique em uma operação. Os detalhes da transação completa são abertos no lado direito e é possível ver as Propriedades da exibição de página. É possível ver os detalhes do cliente que está solicitando a página, incluindo o tipo de navegador e a localização. Essas informações podem ajudá-lo a determinar se há problemas de desempenho relacionados a determinado tipos de clientes.
Usar dados de logs para o cliente
Assim como os dados de desempenho do servidor coletados, o Application Insights disponibiliza todos os dados do cliente para análises profundas com logs.
Retorne ao resumo do navegador e selecione Exibir em Logs (Analytics).
A tela Logs é aberta com uma consulta para cada uma das exibições no painel. A primeira consulta mostra a duração para diferentes exibições de página ao longo do tempo.