Partilhar via


Monitore e analise o comportamento do tempo de execução com otimizações de código

Diagnosticar os problemas de desempenho do seu aplicativo pode ser difícil, especialmente quando executado em um ambiente de produção na nuvem dinâmica. Respostas lentas em seu aplicativo podem ser causadas por infraestrutura, estrutura ou código de aplicativo que manipula a solicitação no pipeline.

As otimizações de código, um serviço baseado em IA no Azure Application Insights, funcionam em conjunto com o Application Insights Profiler para .NET para detetar problemas de desempenho de uso de CPU e memória em um nível de código e fornecer recomendações sobre como corrigi-los.

Tome decisões informadas e otimize seu código usando dados de desempenho em tempo real e insights coletados de seu ambiente de produção.

Você pode revisar suas otimizações de código no portal do Azure.

Otimizações de código e Application Insights Profiler para .NET

O .NET Profiler e as otimizações de código trabalham juntos para fornecer uma abordagem holística para a deteção de problemas de desempenho.

Otimizações de código

As otimizações de código identificam, analisam e resolvem os dados de criação de perfil coletados pelo Application Insights Profiler para .NET. À medida que o .NET Profiler carrega dados para o Application Insights, nosso modelo de aprendizado de máquina analisa alguns dos dados para encontrar onde o código do aplicativo pode ser otimizado. Otimizações de código:

  • Exibe dados agregados coletados ao longo do tempo.
  • Conecta dados com os métodos e funções no código do aplicativo.
  • Reduz o culpado, encontrando gargalos dentro do código.
  • Fornece correções de desempenho em nível de código com base em insights.

Identificar

Usando a página de visão geral consolidada de Otimizações de Código, você pode ver todas as recomendações de Otimização de Código em suas assinaturas do Azure e recursos do Application Insights no portal do Azure. Identifique gargalos em seu código e revise recomendações de nível de código para ambientes de desenvolvimento, teste, pré-produção e produção.

Analise

Depois de coletados os dados do seu ambiente, as otimizações de código fornecem recomendações de nível de código a cada hora. Por padrão, a exibição de dados agregados mostra uma janela contínua de 24 horas de problemas identificados recentemente, com um histórico de 30 dias para você revisar e analisar eventos passados.

Resolver

Depois de identificar e analisar os resultados da otimização de código, você pode resolver esses problemas em seu código usando as extensões Visual Studio e Visual Studio Code de otimizações de código. Com essas extensões, interaja com o GitHub Copilot para receber uma correção de código fundamentada em insights de otimizações de código.

Você também pode criar um problema do GitHub na página Otimizações de código no portal do Azure e atribuí-lo ao agente de codificação do GitHub Copilot. A partir daí, o GitHub Copilot abre uma solicitação pull e envia confirmações de alteração de código com base em insights de otimização de código.

Vídeo de demonstração

Application Insights Profiler para .NET

O .NET Profiler se concentra no rastreamento de solicitações específicas, até o milissegundo. Ele fornece uma excelente visão geral dos problemas em seu aplicativo e práticas recomendadas gerais para resolvê-los.

Com o Application Insights Profiler para .NET, você pode capturar, identificar e exibir rastreamentos de desempenho para seu aplicativo em execução no Azure, independentemente do cenário. O processo de rastreamento do .NET Profiler ocorre automaticamente, em escala e não afeta negativamente seus usuários. O .NET Profiler identifica:

  • Os tempos de resposta mediano, mais rápido e mais lento de cada pedido Web realizado pelos seus clientes.
  • O caminho de código "quente" gastando a maior parte do tempo lidando com uma solicitação da Web específica.

Habilite o Profiler para .NET em todos os seus aplicativos do Azure para coletar dados com os seguintes gatilhos:

  • Gatilho de amostragem: Inicia o Profiler aleatoriamente cerca de uma vez por hora durante dois minutos.
  • Gatilho de CPU: inicia o Profiler automaticamente quando a percentagem de utilização da CPU é superior a 80%.
  • Gatilho para memória: iniciar o Profiler quando o uso de memória está acima de 80%.

Cada um desses gatilhos pode ser configurado, habilitado ou desabilitado.

Custos e despesas gerais

As otimizações de código são geradas automaticamente após a habilitação do Application Insights Profiler para .NET. Por padrão, o Profiler coleta ativamente rastreamentos a cada hora por 30 segundos ou durante períodos de alto uso de CPU ou memória por 30 segundos. Os rastreamentos por hora (chamados de amostragem) são ótimos para ajuste proativo, enquanto os altos rastreamentos de CPU e memória (chamados de gatilhos) são úteis para solução de problemas reativos.

Observação

Quando o Application Insights Profiler para .NET está ativamente executando e coletando rastreamentos, ele normalmente adiciona entre 5% a 15% de sobrecarga de CPU e memória ao servidor.

Não há custo adicional para armazenar dados capturados pelo .NET Profiler. Os dados são automaticamente eliminados após 15 dias.

Alguns recursos de Otimização de Código (como sugestões de correção no nível de código) exigem o Copilot para GitHub e/ou o Copilot para Azure.

Habilitando o .NET Profiler

À medida que as estruturas e os serviços do Azure evoluem, você pode habilitar o .NET Profiler para seus aplicativos .NET em execução no Azure por meio de várias opções.

Serviço do Azure Como ativar Detalhes
A maioria dos serviços do Azure Alteração de código na sua aplicação
(mais universal)
Se seu aplicativo .NET for executado em variantes de serviços ou contêineres PaaS do Azure, você poderá escolher entre duas opções para habilitar o .NET Profiler:
- Application Insights Profiler para ASP.NET Core que usa o SDK do Application Insights, ou
- NovoAzure Monitor OpenTelemetry Profiler para .NET (Pré-visualização) que utiliza a Distro OpenTelemetry do Azure Monitor
Serviço de Aplicações do Azure Nenhuma alteração de código para o seu aplicativo Como o Profiler está pré-instalado, você pode habilitar o Profiler para .NET no portal para:
- Serviço de Aplicativo do Azure - aplicativo .NET no Windows
- Azure Functions - Plano do Serviço de Aplicativo
Máquinas Virtuais Nenhuma alteração de código para o seu aplicativo Depois de habilitar o SDK do Application Insights no código do aplicativo, você pode habilitar o Profiler para .NET em seu modelo ARM.
- Máquinas Virtuais do Azure e Conjuntos de Dimensionamento de Máquinas Virtuais para Windows
- Azure Service Fabric

Detalhes e exemplos para habilitar o Profiler para .NET

Observação

Você também pode usar o Java Profiler para Azure Monitor Application Insights, atualmente em versão de prévia.

Regiões suportadas

As otimizações de código estão disponíveis nas mesmas regiões do Application Insights. Você pode verificar as regiões disponíveis usando o seguinte comando:

az account list-locations -o table

Você pode definir uma região explícita usando cadeias de conexão. Saiba mais sobre cadeias de conexão com exemplos.

Limitações

Perfilagem de aplicações web

  • Embora você possa usar o .NET Profiler sem custo extra, seu aplicativo Web deve ser hospedado na camada básica do recurso Aplicativos Web do Serviço de Aplicativo do Azure, no mínimo.
  • Você pode anexar apenas um criador de perfil a cada aplicativo Web.

Solução de problemas

Próximos passos

Saiba como habilitar o .NET Profiler com otimizações de código em seu serviço do Azure: