Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
- Serviço de Aplicativo do Azure - aplicativo .NET no Windows
- Serviço de Aplicativo do Azure - aplicativo .NET no Linux
-
Contentores:
- Aplicações de Contentores do Azure
- Serviços Kubernetes do Azure
- Instâncias de Contêiner do Azure
- Máquinas Virtuais do Azure e Conjuntos de Dimensionamento de Máquinas Virtuais para Windows
- Azure Functions - Plano do Serviço de Aplicativo
- Azure Service Fabric
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
Gerador de perfis
Se você habilitou o Profiler para .NET, mas não está vendo rastreamentos, consulte o Guia de solução de problemas.
Otimizações de código
Está com problemas? Consulte o guia de solução de problemas de otimizações de código para obter soluções de cenário.
Próximos passos
Saiba como habilitar o .NET Profiler com otimizações de código em seu serviço do Azure: