Búsqueda y diagnóstico de problemas de rendimiento con Azure Application Insights

Application Insights recopila datos de telemetría de cualquier aplicación para ayudarle a analizar su funcionamiento y rendimiento. Esta información se puede usar para identificar los problemas que se pueden producir o las mejoras en la aplicación que más afectarían a los usuarios. En este tutorial se recorre todo el proceso de análisis del rendimiento tanto de los componentes de servidor de una aplicación como de la perspectiva del cliente.

Aprenderá a:

  • Identificar el rendimiento de las operaciones del servidor.
  • Analizar las operaciones del servidor para determinar la causa principal de un bajo rendimiento.
  • Identificar las operaciones del cliente más lentas.
  • Analizar los detalles de las vistas de página mediante el lenguaje de consulta.

Requisitos previos

Para completar este tutorial:

  • Instale Visual Studio 2019 con las cargas de trabajo siguientes:
    • ASP.NET y desarrollo web
    • Desarrollo de Azure
  • Implementación de una aplicación .NET en Azure y habilitación del SDK de Application Insights
  • Habilite el generador de perfiles de Application Insights de la aplicación.

Inicio de sesión en Azure

Inicie sesión en Azure Portal.

Identificación de operaciones lentas del servidor

Application Insights recopila datos de rendimiento de las distintas operaciones en la aplicación. Mediante la identificación de las operaciones que más tardan en completarse, es posible diagnosticar problemas potenciales o enfocar mejor el desarrollo en curso para mejorar el rendimiento general de la aplicación.

  1. Seleccione Application Insights y, a continuación, seleccione la suscripción.

  2. Para abrir el panel Rendimiento, seleccione Rendimiento en el menú Investigar o seleccione el grafo Tiempo de respuesta del servidor.

    Captura de pantalla que muestra la vista Rendimiento.

  3. La pantalla Rendimiento muestra el número de operaciones de la aplicación y la duración media de cada una de ellas. Esta información se puede usar para identificar las operaciones que más afectan a los usuarios. En este ejemplo, GET Customers/Details y GET Home/Index son probables candidatos a los que investigar, ya que su duración es relativamente alta y se las llama en numerosas ocasiones. Otras operaciones pueden tener una duración superior, pero rara vez se les llama, por lo que el efecto de su mejora sería mínimo.

    Captura de pantalla que muestra el panel Servidor de rendimiento.

  4. Actualmente, el grafo muestra la duración media de las operaciones a lo largo del tiempo. Puede cambiar al percentil 95 para detectar los problemas de rendimiento. Para agregar las operaciones que le interesen, ánclelas al grafo. Este grafo muestra que hay algunos valores máximos que merece la pena investigar. Para aislarlos aún más, reduzca la ventana de tiempo del grafo.

    Captura de pantalla que muestra Anclar operaciones.

  5. El panel de rendimiento de la derecha muestra la distribución de duraciones de distintas solicitudes para la operación seleccionada. Reduzca la ventana para empezar alrededor del percentil 95. La tarjeta de información3 dependencias principales puede indicarle de un vistazo que las dependencias externas probablemente estén contribuyendo a que se produzcan las transacciones lentas. Haga clic en el botón con el número de ejemplos para ver una lista de los ejemplos. A continuación, seleccione cualquier ejemplo para ver los detalles de transacción.

  6. Puede ver a simple vista que la llamada a la tabla de Azure Fabrikamaccount es la que más contribuye a la duración total de la transacción. También puede ver que una excepción ha provocado un error. Seleccione cualquier elemento de la lista para ver sus detalles en el lado derecho.

    Captura de pantalla que muestra los detalles de la transacción de un extremo a otro de la operación.

  7. Profiler ayuda a profundizar en los diagnósticos de nivel de código al mostrar el código real que se ejecutó para la operación y el tiempo necesario para cada paso. Es posible que no se pueda realizar un seguimiento de algunas operaciones, ya que Profiler se ejecuta periódicamente. Con el tiempo, más operaciones deben tener seguimientos. Para iniciar Profiler para la operación, seleccione Seguimientos de Profiler.

  8. El seguimiento muestra los eventos individuales de cada operación, de manera que puede diagnosticar la causa principal para la duración de la operación global. Seleccione uno de los ejemplos principales que tenga la duración más larga.

  9. Seleccione Ruta de acceso activa para resaltar la ruta de acceso específica de los eventos que más contribuyen a la duración total de la operación. En este ejemplo, puede ver que la llamada más lenta procede del método FabrikamFiberAzureStorage.GetStorageTableData. La parte que tiene la mayor parte del tiempo es el método CloudTable.CreateIfNotExist. Si esta línea de código se ejecuta cada vez que se llama a la función, se consumirán recursos de CPU y llamadas de red innecesarios. La mejor manera de corregir el código es poner esta línea en algún método de inicio que solo se ejecute una vez.

    Captura de pantalla que muestra los detalles de Profiler.

  10. La sugerencia que se muestra en Consejo de rendimiento, en la parte superior de la pantalla, es compatible con la evaluación de que la duración excesiva se debe a la espera. Seleccione el vínculo de espera para obtener documentación acerca de cómo interpretar los diferentes tipos de eventos.

    Captura de pantalla que muestra una sugerencia de rendimiento.

  11. Para un análisis más profundo, seleccione Descargar seguimiento para descargar el seguimiento. Puede ver estos datos mediante PerfView.

Uso de datos de registros para el servidor

Los registros proporcionan un lenguaje de consulta completo que puede usar para analizar todos los datos recopilados por Application Insights. Puede estar esta característica para realizar un análisis profundo de los datos de solicitud y rendimiento.

  1. Vuelva al panel de detalles de la operación y seleccione el icono RegistrosVer en registros (Analytics).

  2. La pantalla Registros se abre con una consulta en cada una de las vistas del panel. Dichas consultas se pueden ejecutar tal cual, o bien se pueden modificar para ajustarlas a los requisitos. La primera consulta muestra la duración de esta operación a lo largo del tiempo.

    Captura de pantalla que muestra una consulta de registros.

Identificación de operaciones lentas del cliente

Además de identificar los procesos del servidor que se deben optimizar, Application Insights puede analizar la perspectiva de los exploradores cliente. Esta información puede ayudarle a identificar posibles mejoras en los componentes de cliente, e incluso identificar problemas con distintos exploradores o ubicaciones diferentes.

  1. Seleccione Explorador en Investigar y, a continuación, seleccione Rendimiento del explorador. También puede seleccionar Rendimiento en Investigar y cambiar a la pestaña Explorador; para ello, haga clic en el botón de alternancia servidor/explorador situado en la parte superior derecha para abrir el resumen del rendimiento del explorador. Esto proporciona un resumen visual de los distintos datos de telemetría de la aplicación desde la perspectiva del explorador.

    Captura de pantalla que muestra el resumen del explorador.

  2. Seleccione uno de los nombres de la operación y, después, seleccione el botón Ejemplos en la parte inferior derecha y seleccione una operación. Se abren los detalles de la transacción completa en el lado derecho, donde puede ver las propiedades de la vista de página. Así, puede ver los detalles del cliente que solicita la página, incluido el tipo de explorador y su ubicación. Esta información puede ayudarle a determinar si ciertos tipos de clientes tienen problemas de rendimiento.

    Captura de pantalla que muestra las propiedades de la vista de página.

Uso de datos de registros para el cliente

Al igual que los datos recopilados relativos al rendimiento del servidor, Application Insights hace que todos los datos de cliente estén disponibles para un análisis profundo mediante Registros.

  1. Vuelva al resumen del explorador y seleccione el icono RegistrosVer en registros (Analytics).

  2. La pantalla Registros se abre con una consulta en cada una de las vistas del panel. La primera consulta muestra la duración de distintas vistas de la página a lo largo del tiempo.

    Captura de pantalla en la que se muestra la pantalla Registros.