Solución de problemas de Aplicación de Azure Insights Agent (anteriormente Monitor de estado v2)
En este artículo se proporciona información de solución de problemas para ayudar a resolver los problemas de recopilación de datos que puede experimentar cuando la supervisión de Application Insights está habilitada.
Problemas conocidos
Archivos DLL en conflicto en el directorio bin de una aplicación
Si alguna de estas bibliotecas de vínculos dinámicos (DLL) está presente en el directorio bin , es posible que se produzca un error en la supervisión:
- Microsoft.ApplicationInsights.dll
- Microsoft.AspNet.TelemetryCorrelation.dll
- System.Diagnostics.DiagnosticSource.dll
Algunos de estos archivos DLL se incluyen en las plantillas de aplicación predeterminadas de Visual Studio, incluso si la aplicación no las usa. Puede usar herramientas de solución de problemas, como las siguientes, para ver el comportamiento 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 y la carga de aplicaciones (sin telemetría). Investigar con Sysinternals (Handle.exe y 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
Versiones de PowerShell
Este producto se escribió y probó con la versión 5.1 de PowerShell. Este módulo no es compatible con las versiones 6 o 7 de PowerShell. Se recomienda usar PowerShell 5.1 junto con versiones más recientes. Para obtener más información, consulte Uso de PowerShell 7 en paralelo con PowerShell 5.1.
Conflicto con la configuración compartida de IIS
Si tiene un clúster de servidores web, es posible que esté usando una configuración compartida. HttpModule no se puede insertar en esta configuración compartida. Ejecute el comando Habilitar en cada servidor web para instalar el archivo DLL en la caché global de ensamblados (GAC) de cada servidor.
Después de ejecutar el comando Habilitar, complete estos pasos:
Vaya al directorio de configuración compartido y busque el archivo applicationHost.config .
Agregue este código XML a la <sección de módulos> de la configuración:
<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>
Aplicaciones anidadas de IIS
No instrumentamos aplicaciones anidadas en Internet Information Services (IIS) en la versión 1.0.
La configuración avanzada del SDK no está disponible
La configuración del SDK no se expone al usuario final en la versión 1.0.
Solución de problemas de PowerShell
Determinar qué módulos están disponibles
Puede usar el Get-Module -ListAvailable
comando para determinar qué módulos están instalados.
Importación de un módulo en la sesión actual
Si no se ha cargado un módulo en una sesión de PowerShell, puede cargarlo manualmente mediante la ejecución del Import-Module <path to psd1>
comando .
Solución de problemas del módulo del agente de Application Insights
Enumeración de los comandos disponibles en el módulo agente de Application Insights
Ejecute el Get-Command -Module Az.ApplicationMonitor
comando para obtener los comandos disponibles:
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
Determinación de la versión actual del módulo agente de Application Insights
Ejecute el Get-ApplicationInsightsMonitoringStatus -PowerShellModule
comando para mostrar la siguiente información sobre el módulo:
- Versión del módulo de PowerShell
- Versión del SDK de Application Insights
- Rutas de acceso de archivo del módulo de PowerShell
Revise la referencia Get-ApplicationInsightsMonitoringStatus para obtener una descripción detallada de cómo usar este cmdlet.
Solución de problemas de procesos en ejecución
Puede inspeccionar los procesos en el equipo instrumentado para determinar si se cargan todos los archivos DLL y se establecen las variables de entorno. Si la supervisión funciona, se deben cargar al menos 12 archivos DLL.
- Use el
Get-ApplicationInsightsMonitoringStatus -InspectProcess
comando para comprobar los archivos DLL. - Use el
(Get-Process -id <process-identifier>).StartInfo.EnvironmentVariables
comando para comprobar las variables de entorno. Las siguientes variables de entorno se establecen en el proceso de trabajo o en el proceso de .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>
Revise la referencia Get-ApplicationInsightsMonitoringStatus para obtener una descripción detallada de cómo usar este cmdlet.
Recopilación de registros ETW mediante PerfView
Instalación
Descargue PerfView.exe de GitHub.
Ejecute PerfView.exe.
En la barra de menús, seleccione Recopilar>recopilación.
Expanda Opciones avanzadas.
Desactive estas casillas:
- Zip
- Merge
- Colección de símbolos de .NET
Establezca estos proveedores adicionales:
*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
Recopilar los registros
En una consola de comandos con privilegios de administrador, ejecute el
iisreset /stop
comando para desactivar IIS y todas las aplicaciones web.En PerfView, seleccione Iniciar colección.
En una consola de comandos con privilegios de administrador, ejecute el
iisreset /start
comando para iniciar IIS.Intente ir a la aplicación.
Una vez cargada la aplicación, vuelva a PerfView y seleccione Detener colección.
Pasos siguientes
- Revise la referencia de API para obtener información sobre los parámetros que podría haber perdido.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de