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 do ponto de extremidade são o Azure Governamental e o Microsoft Azure operado pela 21Vianet.

Configurações de aplicativo Nuvem do governo dos EUA Nuvem da China
ApplicationInsightsProfilerEndpoint https://profiler.monitor.azure.us https://profiler.monitor.azure.cn
ApplicationInsightsEndpoint https://dc.applicationinsights.us https://dc.applicationinsights.azure.cn

Seu aplicativo está em execução na versão certa?

Há suporte para o Profiler no .NET Framework posterior à 4.6.2.

Se seu aplicativo Web é um aplicativo ASP.NET Core, deve estar executando no runtime do ASP.NET Core com suporte mais recente.

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

No momento, o Profiler não tem suporte em planos de serviço de aplicativo gratuitos ou compartilhados. Atualize para um dos planos básicos para o Profiler começar a trabalhar.

Observação

Não há suporte para o plano de consumo do Azure Functions. Confira Criar um perfil do aplicativo dinâmico do Azure Functions com o Application Insights.

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

Se os dados que você está tentando exibir forem mais antigos do que duas semanas atrás, tente limitar seu filtro de tempo e tente novamente. Rastreamentos são excluídos 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 disparar o Profiler iniciando uma sessão de criação de perfil.

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

Procure por mensagens de rastreamento e eventos personalizados enviados pelo Profiler para o recurso Application Insights.

  1. Em seu recurso 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 encontrar os dados relevantes:

    stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
    

    Screenshot that shows the search results from aforementioned search string.

    Os resultados da pesquisa anteriores 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 upload foi cancelado devido a nenhuma atividade.

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

    Se nenhum registro for exibido, o Profiler não está sendo executado ou atingiu o tempo limite. Verifique se você tem o Profiler habilitado em seu serviço do Azure.

Dois segmentos paralelos de contagem

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 que o tempo real decorrido.

Por exemplo, um thread pode estar aguardando até que o outro seja concluído. O visualizador tenta detectar essa situação e omite a espera desinteressante. Ao fazê-lo, ele erra ao exibir muitas informações, em vez de omitir o que poderiam ser informações críticas.

Quando você vir threads paralelos em seus rastreamentos, determine quais threads estão aguardando para que você possa identificar o do caminho crítico para a solicitação. Geralmente, o thread que rapidamente entra em estado de espera está simplesmente aguardando outros threads. Concentre-se nos outros threads e ignore o tempo nos threads em 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 aplicativo do Azure

Para o Profiler funcionar corretamente, verifique se:

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

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

    1. Vá para o Kudu. No Portal do Azure:

      1. Em sua instância do Serviço de Aplicativo, selecione Ferramentas Avançadas no painel esquerdo.
      2. Selecione Ir.
    2. No menu superior, selecione o 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 do WebJob Contínuo.

      Screenshot that shows the Continuous WebJob Details pane.

Se o Profiler ainda não estiver funcionando, 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 criador de perfil foi habilitado por meio do painel de 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 dessa extensão indo para https://{site-name}.scm.azurewebsites.net/DiagnosticServices

Observação

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

A página de status mostra o estado de instalação do criador de perfil e dos agentes do Depurador de Instantâneos. Se houve um erro inesperado, ele aparece junto com as etapas sobre como corrigi-lo.

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

  1. Abra seu aplicativo de 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 à URL.
    2. Selecione Enter.

Ele termina como https://<kudu-url>/DiagnosticServices.

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

Screenshot that shows the Diagnostic Services status page.

Observação

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 com suporte, confira a 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.

Número excessivo de sessões de criação de perfil 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 poderá gerar o seguinte erro:

Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException

Para solucioná-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 estiver reimplementando seu aplicativo Web em um recurso de Aplicativos Web com o Profiler habilitado, você poderá ver a seguinte mensagem:

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

Este erro ocorrerá se você executar a Implantação da Web de scripts ou do Azure Pipelines. Resolva 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 em execução no momento.

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

O Profiler é executado como um trabalho Web contínuo no aplicativo Web. É possível abrir o recurso do aplicativo Web no Portal do Azure. Se o painel WebJobs, verifique o status de ApplicationInsightsProfiler. Se ele não estiver em execução, abra Logs para obter mais informações.

VMs e Serviços de Nuvem do Azure

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

  1. Verifique se o conteúdo da configuração de Diagnóstico do Azure implantada é o que você espera.

  2. Certifique-se de que o Diagnóstico do Azure passe a iKey adequada 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. Entrar na VM (máquina virtual).

  2. Abra o arquivo de log neste local. A versão do plug-in pode ser mais nova no seu computador.

    Para VMs:

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

    Para Serviços de Nuvem do Azure:

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

  4. Verifique se a iKey utilizado pelo coletor do Profiler está correta.

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

    Para VMs:

    C:\ProgramData\ApplicationInsightsProfiler\config.json
    

    Para 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 criador de perfil, chamado BootstrapN.log. Exibe:

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

    Você pode encontrar o arquivo:

    Para VMs:

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

    Para 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 o aplicativo estiver recebendo solicitações, a seguinte mensagem aparece: "Atividade detectada no iKey".

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

Editar regras de firewall ou proxy de rede

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

Os IPs usados pelo Application Insights Profiler são incluídos na marca de serviço do Azure Monitor. Para saber mais, confira Documentação de marcas 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.