Crie perfis de aplicativos de produção no Azure com o Application Insights Profiler para .NET

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.

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 quando a porcentagem de uso da CPU é superior a 80%.
  • Gatilho de memória: inicia o Profiler quando o uso de memória está acima de 80%.

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

Taxa de amostragem e despesas gerais

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.

Nota

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

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

Suportado no .NET Profiler

O Profiler funciona com aplicativos .NET implantados nos seguintes serviços do Azure. Veja instruções específicas para habilitar o Profiler para cada tipo de serviço nos links a seguir.

Plataforma de computação .NET (>= 4,6) .NET Core
Serviço de Aplicações do Azure Sim Sim
Máquinas Virtuais do Azure e Conjuntos de Dimensionamento de Máquinas Virtuais para Windows Sim Sim
Máquinas Virtuais do Azure e Conjuntos de Dimensionamento de Máquinas Virtuais para Linux Não Sim
Serviços Cloud do Azure Sim Sim
Instâncias de contêiner do Azure para Windows Não Sim
Instâncias de contêiner do Azure para Linux Não Sim
Kubernetes Não Sim
Funções do Azure Sim Sim
Azure Service Fabric Sim Sim

Nota

Você também pode usar o Java Profiler para Azure Monitor Application Insights, atualmente em visualização.

Se você habilitou o Profiler para .NET, mas não está vendo rastreamentos, consulte o Guia de solução de problemas.

Limitações

  • Retenção de dados: o período de retenção de dados padrão é de cinco dias.
  • Criação de perfil 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 criador de perfil a cada aplicativo Web.
    • O .NET Profiler no Linux só é suportado em aplicativos Web baseados no Windows.

Próximos passos

Saiba como habilitar o .NET Profiler em seu serviço do Azure: