Compartir a través de


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.

¿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.

  1. En el recurso de Application Insights, seleccione Buscar en el menú superior.

    Captura de pantalla de la selección del botón Buscar en el recurso de Application Insights.

  2. Use la siguiente cadena de búsqueda para encontrar los datos pertinentes:

    stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
    

    Captura de pantalla que muestra los resultados de la búsqueda de la cadena de búsqueda mencionada anteriormente.

    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.

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:

    1. Vaya a Kudu. En Azure Portal:

      1. En la instancia de App Service, seleccione Herramientas avanzadas en el panel izquierdo.
      2. Seleccione Ir.
    2. En el menú superior, seleccione Herramientas>Panel de WebJobs. Se abre el panel WebJobs.

      Si ApplicationInsightsProfiler3 no aparece, reinicie la aplicación App Service.

      Captura de pantalla que muestra el panel de WebJobs, que muestra el nombre, el estado y la hora de la última ejecución de los trabajos.

    3. 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).

      Captura de pantalla que muestra el panel 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:

  1. Abra la aplicación App Service en Azure Portal.
  2. Seleccione Herramientas avanzadas.
  3. Seleccione Ir.
  4. En el sitio de administración de Kudu:
    1. Anexe /DiagnosticServices a la dirección URL.
    2. Presione Entrar.

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

Una página de estado es similar al ejemplo siguiente.

Captura de pantalla que muestra la página de estado de servicios de diagnóstico.

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:

  1. Compruebe que el contenido de la configuración de Azure Diagnostics implementada es tal como esperaba.

  2. Asegúrese de que Azure Diagnostics pasa el valor de iKey adecuado en la línea de comandos de Profiler.

  3. 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:

  1. Inicie sesión en la máquina virtual (VM).

  2. 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
    
  3. En el archivo, busque la cadena WadCfg para saber qué valores se han pasado a la máquina virtual para configurar Azure Diagnostics.

  4. Compruebe si el valor de iKey que ha usado el receptor de Profiler es correcto.

  5. 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: o d: 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
    
  6. Asegúrese de que el valor de iKey en la línea de comandos de Profiler es correcto.

  7. 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
    
  8. 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).

  9. 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.