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

Azure 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:

Inicio de sesión en Azure

Inicie sesión en Azure Portal en https://portal.azure.com.

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 haga clic en el grafo Tiempo de respuesta del servidor.

    Performance

  3. El panel 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.

    Performance server panel

  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. Esto muestra que hay algunos valores máximos que merece la pena investigar. Y para aislarlos aún más, puede reducir la ventana de tiempo del grafo.

    Pin operations

  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ón "3 dependencias principales" puede indicarle de un vistazo que las dependencias externas probablemente estén coadyuvando 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, puede seleccionar 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. Puede hacer clic en cualquier elemento de la lista para ver sus detalles en el lado derecho. Más información acerca de la experiencia de diagnósticos de transacción

    Operation end-to-end details

  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 el generador de perfiles se ejecuta periódicamente. Con el tiempo, más operaciones deben tener seguimientos. Para iniciar el generador de perfiles de la operación, haga clic en Seguimientos de Profiler.

  8. El seguimiento muestra los eventos individuales de cada operación, por lo que puede diagnosticar la causa principal por la duración de la operación global. Haga clic en uno de los ejemplos superiores, que son los que tienen una duración mayor.

  9. Haga clic en 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.

    Profiler details

  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. Haga clic en el vínculo de espera para obtener documentación acerca de cómo interpretar los diferentes tipos de eventos.

    Performance tip

  11. Para un análisis más profundo, haga clic en 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 le permite analizar todos los datos recopilados por Application Insights. Con ello se puede realizar un análisis profundo de los datos de solicitud y rendimiento.

  1. Vuelva al panel de detalles de la operación y haga clic en Logs iconVer en registros (Analytics).

  2. Los registros se abren 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.

    logs query

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. Esto 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, después, haga clic en Rendimiento del explorador o seleccione Rendimiento en Investigar y cambie 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.

    Browser summary

  2. Seleccione uno de los nombres de la operación y, después, haga clic en el botón de ejemplos azul en la parte inferior derecha y seleccione una operación. Se mostrarán los detalles de la transacción completa y, en el lado derecho, podrá ver las propiedades de la vista de página. Esto te permite ver los detalles del cliente que solicita la página incluido, lo que incluye el tipo de explorador y su ubicación. Esta información puede ayudarle a determinar si ciertos tipos de clientes tienen problemas de rendimiento.

    Page view

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 haga clic en Logs iconVer en registros (Analytics).

  2. Los registros se abren 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.

    Logs query

Pasos siguientes

Ahora que ha aprendido a identificar las excepciones en tiempo de ejecución, pase al siguiente tutorial, donde aprenderá a crear alertas en respuesta a errores.