Solucionar problemas Aplicativo Azure Agente insights (antigo Monitor de Status v2)
Este artigo fornece informações de solução de problemas para ajudar a resolve problemas de coleta de dados que você pode enfrentar quando o monitoramento do Application Insights estiver habilitado.
Problemas conhecidos
DLLs conflitantes no diretório bin de um aplicativo
Se alguma dessas DLLs (bibliotecas de link dinâmico) estiver presente no diretório bin, o monitoramento poderá falhar:
- Microsoft.ApplicationInsights.dll
- Microsoft.AspNet.TelemetryCorrelation.dll
- System.Diagnostics.DiagnosticSource.dll
Algumas dessas DLLs são incluídas nos modelos de aplicativo padrão do Visual Studio, mesmo que seu aplicativo não as use. Você pode usar ferramentas de solução de problemas, como as seguintes ferramentas, para ver o comportamento sintomático:
PerfView:
ThreadID="7,500" ProcessorNumber="0" msg="Found 'System.Diagnostics.DiagnosticSource, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' assembly, skipping attaching redfield binaries" ExtVer="2.8.13.5972" SubscriptionId="" AppName="" FormattedMessage="Found 'System.Diagnostics.DiagnosticSource, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' assembly, skipping attaching redfield binaries"
IISReset e carga de aplicativo (sem telemetria). Investigar com Sysinternals (Handle.exe e ListDLLs.exe):
.\handle64.exe -p w3wp | findstr /I "InstrumentationEngine AI. ApplicationInsights" E54: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.dll .\Listdlls64.exe w3wp | findstr /I "InstrumentationEngine AI ApplicationInsights" 0x0000000009be0000 0x127000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\MicrosoftInstrumentationEngine_x64.dll 0x0000000009b90000 0x4f000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.ApplicationInsights.ExtensionsHost_x64.dll 0x0000000004d20000 0xb2000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.ApplicationInsights.Extensions.Base_x64.dll
Versões do PowerShell
Este produto foi gravado e testado usando o PowerShell versão 5.1. Este módulo não é compatível com as versões 6 ou 7 do PowerShell. Recomendamos usar o PowerShell 5.1 junto com versões mais recentes. Para obter mais informações, confira Usando o PowerShell 7 lado a lado com o PowerShell 5.1.
Conflito com a configuração compartilhada do IIS
Se você tiver um cluster de servidores Web, poderá estar usando uma configuração compartilhada. O HttpModule não pode ser injetado nessa configuração compartilhada. Execute o comando Habilitar em cada servidor Web para instalar a DLL no GAC (cache de assembly global) de cada servidor.
Depois de executar o comando Habilitar, conclua estas etapas:
Acesse o diretório de configuração compartilhada e localize o arquivo applicationHost.config .
Adicione este código XML à <seção módulos> de sua configuração:
<modules> <!-- Registered global managed http module handler. The 'Microsoft.AppInsights.IIS. ManagedHttpModuleHelper.dll' must be installed in the GAC before this config is applied. --> <add name="ManagedHttpModuleHelper" type="Microsoft.AppInsights.IIS.ManagedHttpModuleHelper. ManagedHttpModuleHelper, Microsoft.AppInsights.IIS.ManagedHttpModuleHelper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" /> </modules>
Aplicativos aninhados do IIS
Não instrumentamos aplicativos aninhados no IIS (Internet Information Services) na versão 1.0.
A configuração avançada do SDK não está disponível
A configuração do SDK não é exposta ao usuário final na versão 1.0.
Solucionar problemas do PowerShell
Determinar quais módulos estão disponíveis
Você pode usar o Get-Module -ListAvailable
comando para determinar quais módulos estão instalados.
Importar um módulo para a sessão atual
Se um módulo não tiver sido carregado em uma sessão do PowerShell, você poderá carregá-lo manualmente executando o Import-Module <path to psd1>
comando.
Solucionar problemas do módulo do Application Insights Agent
Listar os comandos disponíveis no módulo do Application Insights Agent
Execute o Get-Command -Module Az.ApplicationMonitor
comando para obter os comandos disponíveis:
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Disable-ApplicationInsightsMonitoring 0.4.0 Az.ApplicationMonitor
Cmdlet Disable-InstrumentationEngine 0.4.0 Az.ApplicationMonitor
Cmdlet Enable-ApplicationInsightsMonitoring 0.4.0 Az.ApplicationMonitor
Cmdlet Enable-InstrumentationEngine 0.4.0 Az.ApplicationMonitor
Cmdlet Get-ApplicationInsightsMonitoringConfig 0.4.0 Az.ApplicationMonitor
Cmdlet Get-ApplicationInsightsMonitoringStatus 0.4.0 Az.ApplicationMonitor
Cmdlet Set-ApplicationInsightsMonitoringConfig 0.4.0 Az.ApplicationMonitor
Cmdlet Start-ApplicationInsightsMonitoringTrace 0.4.0 Az.ApplicationMonitor
Determinar a versão atual do módulo do Application Insights Agent
Execute o Get-ApplicationInsightsMonitoringStatus -PowerShellModule
comando para exibir as seguintes informações sobre o módulo:
- Versão do módulo do PowerShell
- Versão do SDK do Application Insights
- Caminhos de arquivo do módulo do PowerShell
Examine a referência Get-ApplicationInsightsMonitoringStatus para obter uma descrição detalhada de como usar esse cmdlet.
Solucionar problemas em execução de processos
Você pode inspecionar os processos no computador instrumentado para determinar se todas as DLLs estão carregadas e as variáveis de ambiente estão definidas. Se o monitoramento estiver funcionando, pelo menos 12 DLLs devem ser carregadas.
- Use o
Get-ApplicationInsightsMonitoringStatus -InspectProcess
comando para marcar as DLLs. - Use o
(Get-Process -id <process-identifier>).StartInfo.EnvironmentVariables
comando para marcar as variáveis de ambiente. As seguintes variáveis de ambiente são definidas no processo de trabalho ou no processo do .NET Core:
COR_ENABLE_PROFILING=1
COR_PROFILER={324F817A-7420-4E6D-B3C1-143FBED6D855}
COR_PROFILER_PATH_32=<path-to-MicrosoftInstrumentationEngine_x86.dll>
COR_PROFILER_PATH_64=<path-to-MicrosoftInstrumentationEngine_x64.dll>
MicrosoftInstrumentationEngine_Host={CA487940-57D2-10BF-11B2-A3AD5A13CBC0}
MicrosoftInstrumentationEngine_HostPath_32=<path-to-Microsoft.ApplicationInsights.ExtensionsHost_x86.dll>
MicrosoftInstrumentationEngine_HostPath_64=<path-to-Microsoft.ApplicationInsights.ExtensionsHost_x64.dll>
MicrosoftInstrumentationEngine_ConfigPath32_Private=<path-to-Microsoft.InstrumentationEngine.Extensions.config>
MicrosoftInstrumentationEngine_ConfigPath64_Private=<path-to-Microsoft.InstrumentationEngine.Extensions.config>
MicrosoftAppInsights_ManagedHttpModulePath=<path-to-Microsoft.ApplicationInsights.RedfieldIISModule.dll>
MicrosoftAppInsights_ManagedHttpModuleType=Microsoft.ApplicationInsights.RedfieldIISModule.RedfieldIISModule
ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=Microsoft.ApplicationInsights.StartupBootstrapper
DOTNET_STARTUP_HOOKS=<path-to-Microsoft.ApplicationInsights.StartupHook.dll>
Examine a referência Get-ApplicationInsightsMonitoringStatus para obter uma descrição detalhada de como usar esse cmdlet.
Coletar logs de ETW usando o PerfView
Configurar
Baixe PerfView.exe do GitHub.
Execute PerfView.exe.
Na barra de menus, selecione Coletar>Coletar.
Expanda Opções Avançadas.
Desmarque estas caixas de marcar:
- Zip
- Merge
- Coleção de símbolos do .NET
Defina estes provedores adicionais:
*Microsoft-ApplicationInsights-AspNetCore,*Microsoft-ApplicationInsights-AspNetCore-AiHostingStartup,*Microsoft-ApplicationInsights-AspNetCore-StartupBootstrapper,*Microsoft-ApplicationInsights-AspNetCore-StartupHook,*Microsoft-ApplicationInsights-Core,*Microsoft-ApplicationInsights-Data,*Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,*Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,*Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,*Microsoft-ApplicationInsights-Extensibility-EventSourceListener,*Microsoft-ApplicationInsights-Extensibility-HostingStartup,*Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,*Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,*Microsoft-ApplicationInsights-Extensibility-Web,*Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Microsoft-ApplicationInsights-FrameworkLightup,*Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper,*Microsoft-ApplicationInsights-Java-IPA,*Microsoft-ApplicationInsights-LoggerProvider,*Microsoft-ApplicationInsights-Nodejs-IPA,*Microsoft-ApplicationInsights-RedfieldIISModule,*Microsoft-ApplicationInsights-SnapshotCollectorLightup,*Microsoft-ApplicationInsights-WindowsServer-Core,*Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,*Redfield-Microsoft-ApplicationInsights-AspNetCore,*Redfield-Microsoft-ApplicationInsights-Core,*Redfield-Microsoft-ApplicationInsights-Data,*Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,*Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,*Redfield-Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-EventSourceListener,*Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,*Redfield-Microsoft-ApplicationInsights-Extensibility-Web,*Redfield-Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Redfield-Microsoft-ApplicationInsights-LoggerProvider,*Redfield-Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel
Coletar logs
Em um console de comando com privilégios de administrador, execute o comando para desativar o
iisreset /stop
IIS e todos os aplicativos Web.Em PerfView, selecione Iniciar Coleção.
Em um console de comando com privilégios de administrador, execute o comando para iniciar o
iisreset /start
IIS.Tente navegar até seu aplicativo.
Depois que o aplicativo for carregado, retorne ao PerfView e selecione Parar Coleção.
Próximas etapas
- Examine a referência da API para saber mais sobre os parâmetros que você pode ter perdido.
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de