¿Qué es Application Insights?

Completado

Application Insights analiza el rendimiento de su aplicación web y puede advertirle de los posibles problemas.

Esta característica no requiere ninguna configuración especial, tan solo ajustar los parámetros de la aplicación para Application Insights (en ASP.NET, Java o Node.js, así como en el código de la página web). Está activa cuando la aplicación genera suficiente telemetría.

¿Cuándo recibiría una notificación de Detección inteligente?

Application Insights envía una notificación cuando detecta que el rendimiento de la aplicación se ha degradado de una de estas maneras:

  • Degradación del tiempo de respuesta: la aplicación ha comenzado a responder a las solicitudes de una forma más lenta de lo habitual. Es posible que el cambio haya sido repentino (por ejemplo, si se produjo una regresión en la implementación más reciente) o la degradación podría haber sido gradual, quizás porque hay una fuga de memoria.
  • Degradación de la duración de la dependencia: la aplicación realiza llamadas a una API de REST, una base de datos u otra dependencia. La dependencia responde de una forma más lenta de lo habitual.
  • Patrón de rendimiento lento: la aplicación tiene un problema de rendimiento que afecta solo a algunas solicitudes. Por ejemplo, las páginas se cargan mucho más lentamente en un tipo de explorador que en otros, o las solicitudes se atienden de una forma más lenta desde un servidor concreto. Los algoritmos de Application Insights examinan tiempos de carga de página, tiempos de respuesta de solicitud y tiempos de respuesta de dependencia.

Detección inteligente es una característica de Application Insights que le advierte de posibles problemas de rendimiento y de anomalías en los errores en la aplicación web. Requiere, al menos, ocho días de datos de telemetría con un volumen suficiente para establecer una base de referencia. Después de ese período de tiempo, cualquier incidencia importante produce una notificación.

¿Una alerta siempre indica un problema?

Una alerta no implica necesariamente que la aplicación tenga un problema. Es más bien una sugerencia sobre algo que podría querer examinar más detenidamente.

¿Cómo puedo resolver las incidencias?

Cada notificación de alerta incluye información de diagnóstico. Este es un ejemplo de cómo puede usar esa información:

Captura de pantalla que muestra los tiempos de respuesta del servidor como parte del diagnóstico de notificaciones.

  • En el caso de la evaluación de prioridades: la notificación muestra el número de usuarios u operaciones afectados. Esto puede ayudarlo a asignar una prioridad al problema.
  • Para determinar el ámbito.: ¿el problema afecta a todo el tráfico o solo a algunas páginas? ¿Está limitado a ubicaciones o exploradores determinados?
  • En el caso de diagnósticos: a menudo, la información de diagnóstico de la notificación sugiere cuál es la naturaleza del problema. Por ejemplo, si los tiempos de respuesta se ralentizan cuando la tasa de solicitudes es alta, esto sugiere que el servidor o las dependencias están sobrecargadas. Si necesita más información, abra la sección Rendimiento en Application Insights. Allí encontrará los datos del generador de perfiles. Si se producen excepciones, también puede probar el depurador de instantáneas.

Configuración de notificaciones de correo electrónico

Las notificaciones de Detección inteligente se habilitan de manera predeterminada y se envían a aquellos que tienen acceso como propietarios, colaboradores y lectores a los recursos de Application Insights. Para cambiar esta configuración, seleccione la opción Configurar de la notificación por correo electrónico, o bien abra Configuración de Detección inteligente en Application Insights.

Captura de pantalla que muestra la configuración de la detección inteligente. Esta configuración incluye la detección de tiempos de carga de página lentos, tiempos de respuesta de servidor lentos, etc.

Para dejar de recibir notificaciones por correo electrónico, puede usar el vínculo de cancelación de suscripción del correo electrónico de Detección inteligente.

Los mensajes de correo electrónico sobre las anomalías de rendimiento de Detección inteligente están limitados a un correo electrónico al día por recurso de Application Insights. El correo electrónico solamente se envía si se detecta al menos una incidencia nueva en ese día.

¿Cómo puedo mejorar el rendimiento?

Las respuestas lentas y con errores son frustrante para los usuarios del sitio web. Es importante solucionar las incidencias con rapidez. Los pasos que se deben seguir para mejorar el rendimiento son los siguientes:

  1. Evaluación de errores
  2. Diagnóstico
  3. Mejora

Echemos un vistazo más detenidamente a estos pasos, en cuanto a los tiempos de carga de página.

Evaluación de errores

Al examinar la incidencia, lo primero que hay que preguntarse es: ¿es importante? Si una página siempre es lenta al cargarse, pero solo el 1 % de los usuarios del sitio la miran en alguna ocasión, la incidencia es de prioridad baja. Por otro lado, si solo el 1 % de los usuarios abre la página pero siempre se produce una excepción, la prioridad es alta. Use la instrucción de impacto (usuarios afectados o porcentaje de tráfico) como guía general, pero tenga en cuenta que esta instrucción no va a explicar todo lo que pasa. Recopile otras evidencias y tenga en cuenta los parámetros de la incidencia. Si la incidencia depende de la geografía, configure las pruebas de disponibilidad que incluyan la región.

Diagnostico de cargas de página lentas

En el diagnóstico de la incidencia, hágase estas preguntas:

  • ¿Dónde está el problema?
  • ¿El servidor responde con lentitud?
  • ¿La página es larga?
  • ¿El explorador tiene que hacer mucho trabajo para mostrar esta página?

Si está investigando los tiempos de respuesta del explorador, abra la métrica Exploradores. La visualización segmentada de los tiempos de carga de página del explorador muestra en qué se va el tiempo.

  • Si el Tiempo de solicitud de envío es alto, o bien el servidor responde con lentitud o la solicitud es un elemento POST con una gran cantidad de datos. Mire las métricas de rendimiento para investigar los tiempos de respuesta.
  • Configure el seguimiento de dependencias para ver si el retraso se debe a servicios externos o a su base de datos.
  • Si predomina la Recepción de respuesta, la página y sus elementos dependientes (JavaScript, CSS, imágenes y demás, excluidos los datos cargados de forma asincrónica) son largos. Configure una prueba de disponibilidad, y asegúrese de establecer la opción de cargar los elementos dependientes. Cuando obtenga algunos resultados, abra el detalle de un resultado y expándalo para ver los tiempos de carga de los distintos archivos.
  • Un tiempo de Procesamiento del cliente alto sugiere que los scripts se ejecutan con lentitud. Si el motivo no es obvio, considere la posibilidad de agregar algún código de control de tiempo y enviar las horas en llamadas de trackMetric.

Mejora de páginas lentas

Estos son algunos lugares por donde empezar cuando se piensa en cómo mejorar las páginas lentas:

  • Lentitud debida a archivos de gran tamaño: cargue los scripts y otras partes de forma asincrónica. Use la agrupación de scripts. Divida la página principal en widgets que cargan sus datos por separado. No envíe simples HTML antiguos para tablas de gran tamaño; use un script para solicitar los datos como JSON u otro formato compacto y luego rellene la tabla en su lugar.
  • Ralentización de las dependencias de servidor: tenga en cuenta las ubicaciones geográficas de los componentes. Por ejemplo, si usa Azure, asegúrese de que el servidor web y la base de datos se encuentran en la misma región. ¿Es posible que consultas las consultas recuperen más información de la que necesitan? ¿Podría ayudar el almacenamiento en caché o el procesamiento por lotes?
  • Problemas de capacidad: eche una ojeada a las métricas de servidor de tiempos de respuesta y recuentos de solicitudes. Si los tiempos de respuesta presentan picos desproporcionados en recuentos de solicitud, es probable que los servidores estén esforzándose demasiado. Considere la posibilidad de escalar vertical u horizontalmente.

Degradación del tiempo de respuesta del servidor

Una notificación de degradación del tiempo de respuesta le indica lo siguiente:

  • El tiempo de respuesta en comparación con el tiempo de respuesta normal de esta operación.
  • El número de usuarios afectados.
  • El tiempo promedio de respuesta y el tiempo de respuesta del percentil 90 de esta operación en el día de la detección, y siete días antes.
  • El recuento de solicitudes de la operación en el día de la detección y siete días antes.
  • La correlación entre la degradación en esta operación y las degradaciones en las dependencias relacionadas.
  • Recursos para permitirle diagnosticar el problema:
    • Los seguimientos del generador de perfiles le ayudan a ver dónde se emplea el tiempo de operación (el vínculo está disponible si se han recopilado ejemplos de seguimiento del generador de perfiles para esta operación durante el período de detección).
    • Los informes de rendimiento del Explorador de métricas, donde puede examinar los intervalos de tiempo y los filtros de esta operación.
    • Busque esta llamada para ver sus propiedades específicas.
    • Informes de errores. Si el número es mayor que 1, significa que ha habido errores en esta operación que pueden haber contribuido a la degradación del rendimiento.

Degradación de la duración de la dependencia

Si la aplicación se basa en gran medida en servicios externos, es una buena idea ver la degradación de la dependencia.

Este es un ejemplo de notificación de degradación de la dependencia:

Captura de pantalla de una notificación de degradación de la dependencia de Application Insights.

Esto le indica lo siguiente:

  • La duración en comparación con el tiempo de respuesta normal de esta operación.
  • El número de usuarios afectados.
  • La duración media y la duración del percentil 90 de esta dependencia en el día de la detección, y siete días antes.
  • El número de llamadas de dependencia en el día de la detección y siete días antes.
  • Recursos para permitirle diagnosticar el problema:
    • Informes de rendimiento del Explorador de métricas de esta dependencia.
    • Busque estas llamadas de dependencia para ver sus propiedades.
    • Informes de errores. Si hay uno o más errores, indica que se han producido errores de llamadas de dependencia durante el período de detección que podrían haber contribuido a la degradación de la duración.
    • Abra Analytics con las consultas que calculan el número y la duración de esta dependencia.

Detección inteligente de los patrones de rendimiento lento

Application Insights busca los problemas de rendimiento que podrían afectar solo a algunos de sus usuarios o exclusivamente a sus usuarios en algunos casos. Por ejemplo, podría ver que las cargas de página lentas solo se producen con un tipo de explorador o en una zona geográfica determinada.

Anomalías como estas son difíciles de detectar con tan solo inspeccionar los datos, pero son más comunes de lo que pueda creer. A menudo, solo surgen cuando se quejan los clientes.

Los algoritmos de Application Insights examinan tiempos de carga de página, tiempos de respuesta de solicitud en el servidor y tiempos de respuesta de dependencia. No tiene que establecer ningún umbral o regla de configuración. El aprendizaje automático y los algoritmos de minería de datos se usan para detectar patrones anormales. Este es un ejemplo de una notificación:

Captura de pantalla de la detección inteligente en Application Insights.

El campo Cuándo muestra la hora en que se ha detectado el problema.

El campo Qué describe lo siguiente:

  • El problema detectado.
  • Los eventos que han dado lugar al comportamiento del problema.

La tabla compara el conjunto de bajo rendimiento con el comportamiento medio del resto de eventos.

Seleccione los vínculos para abrir el Explorador de métricas y Buscar para encontrar los informes pertinentes que se filtran en el tiempo y las propiedades del conjunto de rendimiento lento y, a continuación, modifique el intervalo de tiempo y los filtros para explorar la telemetría.