Búsqueda y diagnóstico de problemas de rendimiento con Azure Application InsightsFind and diagnose performance issues with Azure Application Insights

Azure Application Insights recopila datos de telemetría de cualquier aplicación para ayudarle a analizar su funcionamiento y rendimiento.Azure Application Insights collects telemetry from your application to help analyze its operation and performance. 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.You can use this information to identify problems that may be occurring or to identify improvements to the application that would most impact users. 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.This tutorial takes you through the process of analyzing the performance of both the server components of your application and the perspective of the client. Aprenderá a:You learn how to:

  • Identificar el rendimiento de las operaciones del servidorIdentify the performance of server-side operations
  • Analizar las operaciones del servidor para determinar la causa principal de un bajo rendimientoAnalyze server operations to determine the root cause of slow performance
  • Identificar las operaciones del cliente más lentasIdentify slowest client-side operations
  • Analizar los detalles de las vistas de página mediante el lenguaje de consultaAnalyze details of page views using query language

Requisitos previosPrerequisites

Para completar este tutorial:To complete this tutorial:

Inicio de sesión en AzureLog in to Azure

Inicie sesión en Azure Portal en https://portal.azure.com.Log in to the Azure portal at https://portal.azure.com.

Identificación de operaciones lentas del servidorIdentify slow server operations

Application Insights recopila datos de rendimiento de las distintas operaciones en la aplicación.Application Insights collects performance details for the different operations in your application. 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.By identifying those operations with the longest duration, you can diagnose potential problems or best target your ongoing development to improve the overall performance of the application.

  1. Seleccione Application Insights y, a continuación, seleccione la suscripción.Select Application Insights and then select your subscription.

  2. Para abrir el panel Rendimiento, seleccione Rendimiento en el menú Investigar o haga clic en el grafo Tiempo de respuesta del servidor.To open the Performance panel either select Performance under the Investigate menu or click the Server Response Time graph.

    Rendimiento

  3. El panel Rendimiento muestra el número de operaciones de la aplicación y la duración media de cada una de ellas.The Performance panel shows the count and average duration of each operation for the application. Esta información se puede usar para identificar las operaciones que más afectan a los usuarios.You can use this information to identify those operations that most impact users. 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.In this example, the GET Customers/Details and GET Home/Index are likely candidates to investigate because of their relatively high duration and number of calls. 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.Other operations may have a higher duration but were rarely called, so the effect of their improvement would be minimal.

    Panel del servidor de rendimiento

  4. Actualmente, el grafo muestra la duración media de las operaciones a lo largo del tiempo.The graph currently shows the average duration of the selected operations over time. Puede cambiar al percentil 95 para detectar los problemas de rendimiento.You can switch to the 95th percentile to find the performance issues. Para agregar las operaciones que le interesen, ánclelas al grafo.Add the operations that you're interested in by pinning them to the graph. Esto muestra que hay algunos valores máximos que merece la pena investigar.This shows that there are some peaks worth investigating. Y para aislarlos aún más, puede reducir la ventana de tiempo del grafo.Isolate this further by reducing the time window of the graph.

    Anclar operaciones

  5. El panel de rendimiento de la derecha muestra la distribución de duraciones de distintas solicitudes para la operación seleccionada.The performance panel on the right shows distribution of durations for different requests for the selected operation. Reduzca la ventana para empezar alrededor del percentil 95.Reduce the window to start around the 95th percentile. 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.The "Top 3 dependencies" insights card, can tell you at a glance that the external dependencies are likely contributing to the slow transactions. Haga clic en el botón con el número de ejemplos para ver una lista de los ejemplos.Click on the button with number of samples to see a list of the samples. A continuación, puede seleccionar cualquier ejemplo para ver los detalles de transacción.You can then select any sample to see transaction details.

  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.You can see at a glance that the call to Fabrikamaccount Azure Table is contributing most to the total duration of the transaction. También puede ver que una excepción ha provocado un error.You can also see that an exception caused it to fail. Puede hacer clic en cualquier elemento de la lista para ver sus detalles en el lado derecho.You can click on any item in the list to see its details on the right side. Más información acerca de la experiencia de diagnósticos de transacciónLearn more about the transaction diagnostics experience

    Detalles de la operación de un extremo a otro

  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.The Profiler helps get further with code level diagnostics by showing the actual code that ran for the operation and the time required for each step. Es posible que no se pueda realizar un seguimiento de algunas operaciones, ya que el generador de perfiles se ejecuta periódicamente.Some operations may not have a trace since the profiler runs periodically. Con el tiempo, más operaciones deben tener seguimientos.Over time, more operations should have traces. Para iniciar el generador de perfiles de la operación, haga clic en Seguimientos de Profiler.To start the profiler for the operation, click Profiler traces.

  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.The trace shows the individual events for each operation so you can diagnose the root cause for the duration of the overall operation. Haga clic en uno de los ejemplos superiores, que son los que tienen una duración mayor.Click one of the top examples, which have the longest duration.

  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.Click Hot Path to highlight the specific path of events that most contribute to the total duration of the operation. En este ejemplo, puede ver que la llamada más lenta procede del método FabrikamFiberAzureStorage.GetStorageTableData.In this example, you can see that the slowest call is from FabrikamFiberAzureStorage.GetStorageTableData method. La parte que tiene la mayor parte del tiempo es el método CloudTable.CreateIfNotExist.The part that takes most time is the CloudTable.CreateIfNotExist method. 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.If this line of code is executed every time the function gets called, unnecessary network call and CPU resource will be consumed. 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.The best way to fix your code is to put this line in some startup method that only executes once.

    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.The Performance Tip at the top of the screen supports the assessment that the excessive duration is due to waiting. Haga clic en el vínculo de espera para obtener documentación acerca de cómo interpretar los diferentes tipos de eventos.Click the waiting link for documentation on interpreting the different types of events.

    Consejo de rendimiento

  11. Para un análisis más profundo, haga clic en Descargar seguimiento para descargar el seguimiento.For further analysis, you can click Download Trace to download the trace. Puede ver estos datos mediante PerfView.You can view this data using PerfView.

Uso de datos de registros para el servidorUse logs data for server

Los registros proporcionan un lenguaje de consulta completo que le permite analizar todos los datos recopilados por Application Insights.Logs provides a rich query language that allows you to analyze all data collected by Application Insights. Con ello se puede realizar un análisis profundo de los datos de solicitud y rendimiento.You can use this to perform deep analysis on request and performance data.

  1. Vuelva al panel de detalles de la operación y haga clic en el icono RegistrosVer en registros (Analytics)Return to the operation detail panel and click Logs iconView in Logs (Analytics)

  2. Los registros se abren con una consulta en cada una de las vistas del panel.Logs opens with a query for each of the views in the panel. Dichas consultas se pueden ejecutar tal cual, o bien se pueden modificar para ajustarlas a los requisitos.You can run these queries as they are or modify them for your requirements. La primera consulta muestra la duración de esta operación a lo largo del tiempo.The first query shows the duration for this operation over time.

    consulta de registros

Identificación de operaciones lentas del clienteIdentify slow client operations

Además de identificar los procesos del servidor que se deben optimizar, Application Insights puede analizar la perspectiva de los exploradores cliente.In addition to identifying server processes to optimize, Application Insights can analyze the perspective of client browsers. Esto puede ayudarle a identificar posibles mejoras en los componentes de cliente, e incluso identificar problemas con distintos exploradores o ubicaciones diferentes.This can help you identify potential improvements to client components and even identify issues with different browsers or different locations.

  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.Select Browser under Investigate then click Browser Performance or select Performance under Investigate and switch to the Browser tab by clicking the server/browser toggle button in the top right to open the browser performance summary. Esto proporciona un resumen visual de los distintos datos de telemetría de la aplicación desde la perspectiva del explorador.This provides a visual summary of various telemetries of your application from the perspective of the browser.

    Resumen de explorador

  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.Select on one of the operation names then click the blue samples button in the bottom right and select an operation. 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.This will bring up the end-to-end transaction details and on the right side you can view the Page View Properties. 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.This allows you to view details of the client requesting the page including the type of browser and its location. Esta información puede ayudarle a determinar si ciertos tipos de clientes tienen problemas de rendimiento.This information can assist you in determining whether there are performance issues related to particular types of clients.

    Vista de página

Uso de datos de registros para el clienteUse logs data for client

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.Like the data collected for server performance, Application Insights makes all client data available for deep analysis using Logs.

  1. Vuelva al resumen del explorador y haga clic en el icono Registros Ver en Registros (Analytics)Return to the browser summary and click Logs icon View in Logs (Analytics)

  2. Los registros se abren con una consulta en cada una de las vistas del panel.Logs opens with a query for each of the views in the panel. La primera consulta muestra la duración de distintas vistas de la página a lo largo del tiempo.The first query shows the duration for different page views over time.

    consulta de registros

Pasos siguientesNext steps

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.Now that you've learned how to identify run-time exceptions, advance to the next tutorial to learn how to create alerts in response to failures.