Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Diagnosticar os problemas de desempenho do seu aplicativo pode ser difícil, especialmente quando ele é 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 do aplicativo que está tratando a solicitação no pipeline.
Otimizações de código, um serviço baseado em IA no Azure Application Insights, funciona em conjunto com o Application Insights Profiler para .NET para detectar problemas de desempenho de uso de CPU e memória em 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 do seu ambiente de produção.
Você pode revisar suas otimizações de código no portal do Microsoft Azure.
Otimizações de código e Perfilador do Application Insights para .NET
O .NET Profiler e as Otimizações de Código trabalham juntos para fornecer uma abordagem holística à detecçã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 no Application Insights, nosso modelo de machine learning analisa alguns dos dados para descobrir 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.
- Restringe o culpado encontrando gargalos dentro do código.
- Fornece correções de desempenho no nível do 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 examine as recomendações de nível de código para ambientes de desenvolvimento, teste, pré-produção e produção.
Analisar
Depois que os dados do ambiente forem coletados, as Otimizações de código fornecerão recomendações de nível de código por hora. Por padrão, a exibição de dados agregados mostra uma janela de 24 horas sem interrupção de problemas identificados recentemente, com um histórico de 30 dias para você examinar 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 de Otimizações de Código do Visual Studio e do Visual Studio Code . Com essas extensões, interaja com o GitHub Copilot para receber uma correção de código fundamentada nos 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 um pull request e envia por push commits de alteração de código com base nos insights de Otimização de Código.
Vídeo de demonstração
Application Insights Profiler para .NET
O .NET Profiler concentra-se 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 visualizar rastreamentos de desempenho do 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 medianos, mais rápidos e mais lentos para cada solicitação da Web feita por seus clientes.
- O caminho de código "quente" que gasta mais tempo lidando com uma determinada solicitação da Web.
Habilite o Profiler para .NET em todos os seus aplicativos do Azure para coletar dados com os seguintes gatilhos:
- Gatilho de amostragem: inicia o criador de perfil aleatoriamente cerca de uma vez por hora por dois minutos.
- Gatilho da CPU: inicia o criador de perfil quando o percentual de uso da CPU é superior a 80%.
- Gatilho de memória: Inicia o Profiler quando a utilização de memória ultrapassar 80%.
Cada um desses acionadores pode ser configurado, ativado ou desativado.
Custo e sobrecarga
As otimizações de código são geradas automaticamente depois que o Application Insights Profiler para .NET está habilitado. 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 a alta CPU e os rastreamentos de memória (chamados de gatilhos) são úteis para solução de problemas reativa.
Observação
Quando o Application Insights Profiler para .NET está em execução ativa e coletando rastros, ele normalmente adiciona entre 5% a 15% de sobrecarga de CPU e memória ao seu servidor.
Não há nenhum custo adicional para armazenar dados capturados pelo .NET Profiler. Os dados são excluídos automaticamente 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 Copilot para GitHub e/ou Copilot para o Azure.
Habilitação de Profiler do .NET
À 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 habilitar | Detalhes |
---|---|---|
A maioria dos serviços do Azure | Alteração de código em seu aplicativo (mais universal) |
Se seu aplicativo .NET for executado em variantes de serviços de PaaS do Azure ou contêineres, 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 - NovoProfiler do OpenTelemetry para NET do Azure Monitor (versão prévia) que usa o Distribuições da OpenTelemetry do Azure Monitor |
Serviço de aplicativo do Azure | Nenhuma alteração de código para seu aplicativo | Como o Profiler está pré-instalado, você pode ativar 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 seu aplicativo | Depois de habilitar o SDK do Application Insights no código do aplicativo, você poderá habilitar o Criador de Perfil para .NET no modelo do 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 Criador de Perfil para .NET
- Serviço de Aplicativo do Azure – aplicativo .NET no Windows
- Serviço de Aplicativo do Azure – aplicativo .NET no Linux
- Contentores:
- Aplicativos de Contêiner do Azure
- Serviços de 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
- Malha de Serviços do Azure
Observação
Você também pode usar o Java Profiler para o Application Insights do Azure Monitor, atualmente em versão prévia.
Regiões com suporte
As Otimizações de Código estão disponíveis nas mesmas regiões que o 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
Análise de desempenho de aplicativos 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 profiler a cada aplicativo web.
Resolução de problemas
Profiler
Se você habilitou o Profiler para .NET, mas não está vendo rastros, veja o Guia de solução de problemas.
Otimizações de código
Está com problemas? Verifique o guia de solução de problemas de Otimizações de Código para obter soluções de cenário.
Próximas etapas
Saiba como habilitar o .NET Profiler com otimizações de código em seu serviço do Azure: