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 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.
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 criador de perfil quando o uso de memória está acima de 80%.
Cada um desses acionadores pode ser configurado, ativado ou desativado.
Taxa de amostragem e sobrecarga
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.
Suportado no .NET Profiler
O profiler trabalha com aplicativos .NET implantados nos seguintes serviços do Azure. Nos links abaixo, veja instruções específicas para habilitar o Profiler para cada tipo de link a seguir.
Plataforma de computação | .NET (>= 4.6) | .NET Core |
---|---|---|
Serviço de Aplicativo 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 de Nuvem do Azure | Sim | Sim |
Instâncias de Contêiner do Azure para Windows | No | Sim |
Instâncias de Contêiner do Azure para Linux | No | Sim |
Kubernetes | No | Sim |
Azure Functions | Sim | Sim |
Azure Service Fabric | Sim | Sim |
Observação
Você também pode usar o Java Profiler para o Application Insights do Azure Monitor, atualmente em versão prévia.
Se você habilitou o Profiler para .NET, mas não está vendo rastros, veja 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 um criador de perfil para cada aplicativo Web.
- O .NET Profiler no Linux só é compatível com aplicativos web baseados no Windows.
Próximas etapas
Saiba como habilitar o .NET Profiler no seu serviço do Azure: