Share via


Solucionar problemas do Application Insights Profiler

Este artigo apresenta etapas de solução de problemas e informações para permitir que você use o Application Insights Profiler.

Você está usando o ponto de extremidade apropriado do Profiler?

Atualmente, as únicas regiões que exigem modificações de ponto de extremidade são o Azure Government e o Microsoft Azure operados pela 21Vianet.

Definição da aplicação Nuvem do governo dos EUA China Cloud
ApplicationInsightsProfilerEndpoint https://profiler.monitor.azure.us https://profiler.monitor.azure.cn
ApplicationInsightsEndpoint https://dc.applicationinsights.us https://dc.applicationinsights.azure.cn

Seu aplicativo está sendo executado na versão correta?

O Profiler é suportado no .NET Framework posterior à 4.6.2.

Se o seu aplicativo Web for um aplicativo ASP.NET Core, ele deverá estar sendo executado no tempo de execução ASP.NET Core suportado mais recente.

Você está usando o plano de serviço do Azure correto?

Atualmente, o Profiler não é compatível com planos de serviço de aplicativos gratuitos ou compartilhados. Atualize para um dos planos básicos para que o Profiler comece a funcionar.

Nota

O plano de consumo do Azure Functions não é suportado. Consulte Criar perfil do aplicativo Azure Functions ao vivo com o Application Insights.

Você está procurando por dados do Profiler dentro do período de tempo certo?

Se os dados que está a tentar visualizar tiverem mais de duas semanas, tente limitar o filtro de tempo e tente novamente. Os vestígios são eliminados após sete dias.

Você pode acessar o gateway?

Verifique se um firewall ou proxies não estão bloqueando seu acesso a esta página da Web.

Você está vendo tempos limite ou precisa verificar se o Profiler está em execução?

Os dados de criação de perfil são carregados somente quando podem ser anexados a uma solicitação que aconteceu enquanto o Profiler estava em execução. O Profiler coleta dados por dois minutos a cada hora. Você também pode acionar o Profiler iniciando uma sessão de criação de perfil.

O Profiler grava mensagens de rastreamento e eventos personalizados em seu recurso do Application Insights. Você pode usar esses eventos para ver como o Profiler está sendo executado.

Pesquise mensagens de rastreamento e eventos personalizados enviados pelo Profiler para seu recurso do Application Insights.

  1. No recurso do Application Insights, selecione Pesquisar no menu superior.

    Screenshot that shows selecting the Search button from the Application Insights resource.

  2. Use a seguinte cadeia de caracteres de pesquisa para localizar os dados relevantes:

    stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
    

    Screenshot that shows the search results from aforementioned search string.

    Os resultados da pesquisa anterior incluem dois exemplos de pesquisas de dois recursos de IA:

    • Se o aplicativo não estiver recebendo solicitações enquanto o Profiler estiver em execução, a mensagem explicará que o carregamento foi cancelado devido a nenhuma atividade.

    • O Profiler iniciou e enviou eventos personalizados quando detetou solicitações que aconteceram enquanto o Profiler estava em execução. Se o ServiceProfilerSample evento personalizado for exibido, isso significa que um perfil foi capturado e está disponível no painel Desempenho do Application Insights.

    Se nenhum registro for exibido, o Profiler não está em execução ou atingiu o tempo limite. Certifique-se de que ativou o Profiler no seu serviço do Azure.

Dupla contagem em roscas paralelas

Quando dois ou mais threads paralelos são associados a uma solicitação, a métrica de tempo total no visualizador de pilha pode ser maior do que a duração da solicitação. Nesse caso, o tempo total de thread é maior do que o tempo real decorrido.

Por exemplo, um thread pode estar aguardando o outro para ser concluído. O espectador tenta detetar essa situação e omite a espera desinteressante. Ao fazê-lo, peca por exibir demasiada informação em vez de omitir o que pode ser informação crítica.

Quando você vir threads paralelos em seus rastreamentos, determine quais threads estão aguardando para que você possa identificar o caminho quente para a solicitação. Normalmente, o thread que entra rapidamente em um estado de espera está aguardando nos outros threads. Concentre-se nos outros threads e ignore o tempo nos threads de espera.

Solucionar problemas do Profiler em seu serviço específico do Azure

As seções a seguir orientam você pelas etapas de solução de problemas para usar o Profiler no Serviço de Aplicativo do Azure ou nos Serviços de Nuvem do Azure.

Serviço de Aplicações do Azure

Para que o Profiler funcione corretamente, certifique-se de:

  • Seu aplicativo Web tem o Application Insights habilitado com as configurações corretas.

  • O WebJob ApplicationInsightsProfiler3 está em execução. Para verificar o webjob:

    1. Vá para Kudu. No portal do Azure:

      1. Na instância do Serviço de Aplicativo, selecione Ferramentas Avançadas no painel esquerdo.
      2. Selecione Ir.
    2. No menu superior, selecione Painel Ferramentas>WebJobs. O painel WebJobs é aberto.

      Se o ApplicationInsightsProfiler3 não aparecer, reinicie o aplicativo do Serviço de Aplicativo.

      Screenshot that shows the WebJobs pane, which displays the name, status, and last runtime of jobs.

    3. Para exibir os detalhes do WebJob, incluindo o log, selecione o link ApplicationInsightsProfiler3 . O painel Detalhes Contínuos do WebJob é aberto.

      Screenshot that shows the Continuous WebJob Details pane.

Se o Profiler ainda não estiver funcionando para você, baixe o log e envie um tíquete de suporte do Azure.

Verifique a página de status da extensão de site dos Serviços de Diagnóstico

Se o Profiler foi habilitado por meio do painel Application Insights no portal, ele foi habilitado pela extensão de site dos Serviços de Diagnóstico. Você pode verificar a página de status desta extensão indo para https://{site-name}.scm.azurewebsites.net/DiagnosticServices.

Nota

O domínio do link da página de status varia dependendo da nuvem. Este domínio é o mesmo que o site de gerenciamento Kudu para o Serviço de Aplicativo.

A página de status mostra o estado de instalação dos agentes Profiler e Snapshot Debugger . Se houve um erro inesperado, ele aparece junto com as etapas sobre como corrigi-lo.

Você pode usar o site de gerenciamento Kudu para o Serviço de Aplicativo para obter a URL base desta página de status:

  1. Abra seu aplicativo do Serviço de Aplicativo no portal do Azure.
  2. Selecione Ferramentas avançadas.
  3. Selecione Ir.
  4. No site de gerenciamento do Kudu:
    1. Acrescente /DiagnosticServices ao URL.
    2. Selecione Enter.

Termina como https://<kudu-url>/DiagnosticServices.

Uma página de status é semelhante ao exemplo a seguir.

Screenshot that shows the Diagnostic Services status page.

Nota

A instalação sem código do Application Insights Profiler segue a política de suporte do .NET Core. Para obter mais informações sobre tempos de execução suportados, consulte Política de suporte do .NET Core.

Instalação manual

Quando você configura o Profiler, são feitas atualizações nas configurações do aplicativo Web. Se necessário, você pode aplicar as atualizações manualmente.

Demasiadas sessões de criação de perfis ativas

Você pode habilitar o Profiler em no máximo quatro aplicativos Web em execução no mesmo plano de serviço. Se você tiver mais de quatro, o Profiler pode lançar o seguinte erro:

Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException

Para resolvê-lo, mova alguns aplicativos Web para um plano de serviço diferente.

Erro de implantação: Diretório não vazio 'D:\home\site\wwwroot\App_Data\jobs'

Se você estiver reimplantando seu aplicativo Web em um recurso de Aplicativos Web com o Profiler habilitado, poderá ver a seguinte mensagem:

"Diretório não vazio 'D:\home\site\wwwroot\App_Data\jobs'"

Este erro ocorre se executar a Implementação da Web a partir de scripts ou de Pipelines do Azure. Resolva-o adicionando os seguintes parâmetros de implantação à tarefa de Implantação da Web:

-skip:Directory='.*\\App_Data\\jobs\\continuous\\ApplicationInsightsProfiler.*' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs\\continuous$' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs$'  -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data$'

Esses parâmetros excluem a pasta usada pelo Application Insights Profiler e desbloqueiam o processo de reimplantação. Eles não afetam a instância do Profiler que está em execução no momento.

O Application Insights Profiler está em execução?

O Profiler é executado como um WebJob contínuo no aplicativo Web. Você pode abrir o recurso de aplicativo Web no portal do Azure. No painel WebJobs, verifique o status de ApplicationInsightsProfiler. Se não estiver em execução, abra Logs para obter mais informações.

VMs e Serviços de Nuvem do Azure

Para ver se o Profiler está configurado corretamente pelo Diagnóstico do Azure:

  1. Verifique se o conteúdo da configuração do Diagnóstico do Azure implantada é o esperado.

  2. Certifique-se de que o Diagnóstico do Azure passa o iKey adequado na linha de comando do Profiler.

  3. Verifique o arquivo de log do Profiler para ver se o Profiler foi executado, mas retornou um erro.

Para verificar as configurações que foram usadas para configurar o Diagnóstico do Azure:

  1. Entre na máquina virtual (VM).

  2. Abra o arquivo de log neste local. A versão do plug-in pode ser mais recente na sua máquina.

    Para VMs:

    c:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    

    Para os Serviços de Nuvem do Azure:

    c:\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    
  3. No arquivo, procure a cadeia de caracteres WadCfg para localizar as configurações que foram passadas para a VM para configurar o Diagnóstico do Azure.

  4. Verifique se o iKey usado pelo coletor do Profiler está correto.

  5. Verifique a linha de comando usada para iniciar o Profiler. Os argumentos usados para iniciar o Profiler estão no seguinte arquivo (a unidade pode ser c: ou d: e o diretório pode estar oculto):

    Para VMs:

    C:\ProgramData\ApplicationInsightsProfiler\config.json
    

    Para os Serviços de Nuvem do Azure:

    D:\ProgramData\ApplicationInsightsProfiler\config.json
    
  6. Verifique se o iKey na linha de comando do Profiler está correto.

  7. Usando o caminho encontrado no arquivo config.json anterior, verifique o arquivo de log do Profiler, chamado BootstrapN.log. Apresenta:

    • As informações de depuração que indicam as configurações que o Profiler está usando.
    • Mensagens de status e erro do Profiler.

    Você pode encontrar o arquivo:

    Para VMs:

    C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    

    Para os Serviços de Nuvem do Azure:

    C:\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    
  8. Se o Profiler estiver em execução enquanto seu aplicativo está recebendo solicitações, a seguinte mensagem será exibida: "Atividade detetada do iKey".

  9. Quando o rastreamento está sendo carregado, a seguinte mensagem aparece: "Iniciar o rastreamento de carregamento".

Editar proxy de rede ou regras de firewall

Se seu aplicativo se conectar à Internet por meio de um proxy ou firewall, talvez seja necessário atualizar as regras para se comunicar com o Profiler.

Os IPs usados pelo Application Insights Profiler estão incluídos na marca de serviço do Azure Monitor. Para obter mais informações, consulte Documentação de tags de serviço.

Suporte

Se você ainda precisar de ajuda, envie um tíquete de suporte no portal do Azure. Inclua a ID de correlação da mensagem de erro.