Solución de problemas de Application Insights Profiler
En este artículo se presentan pasos e información de solución de problemas para poder habilitarlo para usar Application Insights Profiler.
¿Seguro que está utilizando el punto de conexión de Profiler adecuado?
Actualmente, las únicas regiones que requieren modificaciones en el punto final son Azure Government y Microsoft Azure operado por 21Vianet.
Configuración de aplicación | Nube del Gobierno de EE. UU. | Nube de China |
---|---|---|
ApplicationInsightsProfilerEndpoint | https://profiler.monitor.azure.us |
https://profiler.monitor.azure.cn |
ApplicationInsightsEndpoint | https://dc.applicationinsights.us |
https://dc.applicationinsights.azure.cn |
¿La aplicación se ejecuta en la versión correcta?
Profiler se admite en las versiones posteriores a .NET Framework 4.6.2.
Si la aplicación web es una aplicación de ASP.NET Core, debe ejecutarse en la última versión compatible de ASP.NET Core Runtime.
¿Seguro que usa el plan de servicio de Azure adecuado?
Actualmente no se admite Profiler en planes de App Service gratuitos o compartidos. Actualice a uno de los planes básicos de Profiler para empezar a trabajar.
Nota
No se admite Azure Functions en el plan de consumo. Vea Generación de perfiles de una aplicación Azure Functions activa con Application Insights.
¿Busca datos de Profiler en el período de tiempo adecuado?
Si la antigüedad de los datos que intenta ver supera las dos semanas, pruebe a limitar el filtro de tiempo e inténtelo de nuevo. Los seguimientos se eliminan pasados siete días.
¿Conoce la frecuencia de muestreo y la sobrecarga del generador de perfiles?
Profiler se ejecuta aleatoriamente dos minutos por hora en cada máquina virtual que aloje aplicaciones con Profiler habilitado.
Nota:
Cuando Profiler se está ejecutando activamente y recopilando seguimientos, normalmente agrega entre el 5 % y el 15 % de la sobrecarga de CPU y memoria al servidor.
No hay ningún costo adicional para almacenar los datos capturados por Profiler. Los datos se eliminan automáticamente después de 15 días.
¿Puede acceder a la puerta de enlace?
Compruebe que un firewall o servidores proxy no bloquean el acceso a esta página web.
¿Ve tiempos de espera o necesita comprobar si Profiler se está ejecutando?
Los datos de generación de perfiles solo se cargan cuando se pueden adjuntar a una solicitud que se ha realizado mientras se ejecuta Profiler. Profiler recopila los datos durante dos minutos cada hora. También puede desencadenar Profiler iniciando una sesión de generación de perfiles.
Profiler escribe mensajes de seguimiento y eventos personalizados en el recurso de Application Insights. Estos eventos se pueden usar para ver cómo se ejecuta Profiler.
Busque mensajes de seguimiento y eventos personalizados que Profiler ha enviado a su recurso de Application Insights.
En el recurso de Application Insights, seleccione Buscar en el menú superior.
Use la siguiente cadena de búsqueda para encontrar los datos pertinentes:
stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
Los resultados de la búsqueda anteriores incluyen dos ejemplos de búsquedas de dos recursos de inteligencia artificial:
Si la aplicación no recibe solicitudes mientras se ejecuta Profiler, el mensaje explica que la carga se canceló debido a que no había ninguna actividad.
Profiler se ha iniciado y ha enviado eventos personalizados cuando ha detectado las solicitudes que se han producido mientras se estaba ejecutando Profiler. Si se muestra el evento personalizado
ServiceProfilerSample
, significa que se ha capturado un perfil y que está disponible en el panel de rendimiento de Application Insights.
Si no se muestran registros, Profiler no se está ejecutando o tarda demasiado tiempo en responder. Asegúrese de que Profiler está habilitado en el servicio de Azure.
El generador de perfiles está activado, pero no se capturó ningún seguimiento
Incluso cuando el generador de perfiles está habilitado, es posible que no capture o cargue seguimientos, especialmente en estas situaciones:
No hay solicitudes entrantes a la aplicación:
Puede invocar manualmente la aplicación o crear una prueba de disponibilidad o una prueba de carga.No hay telemetría entrante confirmada por Application Insights:
- Si hay tráfico que llega a la aplicación: compruebe que hay solicitudes entrantes que se muestran en Métricas en directo de Application Insights.
- Si los gráficos de
Incoming Requests
están vacíos (sin datos o mostrando cero): solucionar problemas de Application Insights. - Si hospeda la aplicación .NET en Azure App Service: pruebe los pasos de solución de problemas de .NET de App Service.
La configuración del generador de perfiles para P está desactivada:
Si todavía no hay seguimientos del generador de perfiles disponibles, compruebe la configuración Muestreo del generador de perfiles.- Abra la hoja Rendimientode Application Insights.
- Haga clic en Generador de perfiles.
- Haga clic en el botón Desencadenadores.
- En la configuración del desencadenador, asegúrese de que la opción Muestreo esté activada.
¿Todavía no hay seguimientos cargados?
Cree una solicitud de soporte técnico o pregúntele al Soporte técnico de la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.
Doble recuento de subprocesos paralelos
Cuando dos o más subprocesos paralelos están asociados a una solicitud, la métrica de tiempo total del visor de la pila puede ser mayor que la duración de la solicitud. En ese caso, el tiempo de subproceso total es superior al tiempo real transcurrido.
Por ejemplo, uno de los subprocesos puede estar a la espera de que el otro finalice. El visor intenta detectar esta situación y omite la espera sin interés. Al hacerlo, prefiere mostrar demasiada información antes que omitir lo que podría ser información crítica.
Cuando vea subprocesos en paralelo en sus seguimientos, determine cuáles de ellos están en espera, para poder determinar cuál es la ruta de acceso activa de la solicitud. Normalmente, el subproceso que pasa rápidamente a un estado de espera tan solo espera a los restantes subprocesos. Concéntrese en los demás subprocesos e ignore el tiempo de los subprocesos en espera.
Solución de problemas de Profiler en su servicio de Azure específico
En las secciones siguientes se describen los pasos de solución de problemas para usar Profiler en Azure App Service o Azure Cloud Services.
Azure App Service
Para que Profiler funcione correctamente, asegúrese de lo siguiente:
La aplicación web tiene Application Insights habilitado con la configuración correcta.
El WebJob ApplicationInsightsProfiler3 está en ejecución. Para comprobarlo:
Vaya a Kudu. En Azure Portal:
- En la instancia de App Service, seleccione Herramientas avanzadas en el panel izquierdo.
- Seleccione Ir.
En el menú superior, seleccione Herramientas>Panel de WebJobs. Se abre el panel WebJobs.
Si ApplicationInsightsProfiler3 no aparece, reinicie la aplicación App Service.
Para ver los detalles del WebJob, incluido el registro, seleccione el vínculo ApplicationInsightsProfiler3. Se abre el panel Continuous WebJob Details (Detalles de WebJobs continuos).
Si Profiler sigue sin funcionar, puede descargar el registro y enviar una incidencia de soporte técnico de Azure.
Comprobación de la página de estado de la extensión de sitio de los servicios de diagnóstico
Si ha habilitado Profiler a través del panel de Application Insights en el portal, se administra mediante la extensión del sitio de Servicios de diagnóstico. Para comprobar la página de estado de esta extensión, vaya a: https://{site-name}.scm.azurewebsites.net/DiagnosticServices
.
Nota
El dominio del vínculo de la página de estado varía en función de la nube. Este dominio es el mismo que el sitio de administración de Kudu para App Service.
La página de estado muestra el estado de la instalación de Profiler y los agentes de Snapshot Debugger. Si se produjo un error inesperado, aparece junto con pasos sobre cómo corregirlo.
Puede usar el sitio de administración de Kudu de App Service para obtener la dirección URL base de esta página de estado:
- Abra la aplicación App Service en Azure Portal.
- Seleccione Herramientas avanzadas.
- Seleccione Ir.
- En el sitio de administración de Kudu:
- Anexe
/DiagnosticServices
a la dirección URL. - Presione Entrar.
- Anexe
Termina como https://<kudu-url>/DiagnosticServices
.
Una página de estado es similar al ejemplo siguiente.
Nota
La instalación sin código de Application Insights Profiler sigue la directiva de compatibilidad de .NET Core. Para más información sobre los entornos de ejecución admitidos, consulte Directiva de compatibilidad de .NET Core.
Instalación manual
Cuando se configura Profiler, se realizan las siguientes actualizaciones en la configuración de la aplicación web. Si es necesario, puede aplicar las actualizaciones manualmente.
Hay demasiadas sesiones de generación de perfiles activas
En Azure App Service, solo hay un límite de una sesión de generación de perfiles a la vez. Este límite se aplica en el nivel de máquina virtual en todas las aplicaciones y ranuras de implementación que se ejecutan en un plan de App Service. Este límite se aplica igualmente a las sesiones de generación de perfiles iniciadas a través de Diagnosticar y resolver problemas, Kudu y Application Insights Profiler. Si Profiler intenta iniciar una sesión cuando ya se está ejecutando otra, se registra un error en el registro de aplicaciones y también en el registro continuo de WebJob para ApplicationInsightsProfiler3.
Es posible que vea uno de los siguientes mensajes en los registros:
Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException
Error: StartProfiler failed. Details: System.Runtime.InteropServices.COMException (0xE111005E): Exception from HRESULT: 0xE111005E
El código de error 0xE111005E indica que no se pudo iniciar una sesión de generación de perfiles porque ya se está ejecutando otra sesión.
Para evitar el error, mueva algunas aplicaciones web a otro plan de App Service o deshabilite Profiler en algunas de las aplicaciones. Si usa ranuras de implementación, asegúrese de detener las ranuras sin usar.
Error de implementación: Directory Not Empty 'D:\home\site\wwwroot\App_Data\jobs'
Si va a volver a implementar la aplicación web en un recurso de Web Apps con Profiler habilitado, puede que aparezca un mensaje similar al siguiente:
"Directory Not Empty 'D:\home\site\wwwroot\App_Data\jobs'"
Este error se produce si Web Deploy se ejecuta desde scripts o desde Azure Pipelines. La solución consiste en agregar los siguientes parámetros de implementación a la tarea de Web Deploy:
-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$'
Estos parámetros eliminan la carpeta que usa Application Insights Profiler y desbloquean el proceso de reeimplementación. No afectan a la instancia de Profiler actualmente en ejecución.
¿Se está ejecutando Application Insights Profiler?
Profiler se ejecuta como un WebJob continuo en la aplicación web. Puede abrir el recurso de aplicación web en Azure Portal. En el panel WebJobs, compruebe el estado de ApplicationInsightsProfiler. Si no se está ejecutando, abra Registros para obtener más información.
Máquinas virtuales y Azure Cloud Services
Para ver si Profiler está configurado correctamente en Azure Diagnostics:
Compruebe que el contenido de la configuración de Azure Diagnostics implementada es tal como esperaba.
Asegúrese de que Azure Diagnostics pasa el valor de iKey adecuado en la línea de comandos de Profiler.
Compruebe en el archivo de registro de Profiler si este se ha ejecutado, pero ha devuelto un error.
Para comprobar la configuración que se usó para configurar Azure Diagnostics:
Inicie sesión en la máquina virtual (VM).
Abra el archivo de registro en esta ubicación. La versión del complemento puede ser más reciente en la máquina.
Para máquinas virtuales:
c:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
Para Azure Cloud Services:
c:\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
En el archivo, busque la cadena
WadCfg
para saber qué valores se han pasado a la máquina virtual para configurar Azure Diagnostics.Compruebe si el valor de iKey que ha usado el receptor de Profiler es correcto.
Compruebe la línea de comandos que inicia Profiler. Los argumentos de la línea de comandos se encuentran en el siguiente archivo (la unidad podría ser
c:
od:
y el directorio podría estar oculto):Para máquinas virtuales:
C:\ProgramData\ApplicationInsightsProfiler\config.json
Para Azure Cloud Services:
D:\ProgramData\ApplicationInsightsProfiler\config.json
Asegúrese de que el valor de iKey en la línea de comandos de Profiler es correcto.
Puede usar la ruta de acceso que se encuentra en el archivo config.json anterior para consultar el archivo de registro de Profiler, denominado
BootstrapN.log
. Muestra lo siguiente:- La información de depuración que indica la configuración que usa Profiler.
- Estado y mensajes de error de Profiler.
Puede encontrar el archivo:
Para máquinas virtuales:
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
Para Azure Cloud Services:
C:\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
Si Profiler se está ejecutando mientras la aplicación recibe solicitudes, se mostrará el siguiente mensaje: "Activity detected from iKey" (Se ha detectado actividad en la clave de instrumentación).
Cuando se carga el seguimiento, se muestra el mensaje siguiente: "Start to upload trace" (Inicio de carga del seguimiento).
Edición de reglas de firewall o proxy de red
Si la aplicación se conecta a Internet a través de un proxy o un firewall, es posible que tenga que actualizar las reglas para comunicarse con el servicio de Profiler.
Las direcciones IP que se usan en Application Insights Profiler se incluyen en la etiqueta de servicio de Azure Monitor. Para obtener más información, consulte la documentación sobre las etiquetas de servicio.
Soporte técnico
Si sigue necesitando ayuda, envíe una incidencia de soporte técnico en Azure Portal. Incluya el identificador de correlación del mensaje de error.