Comprender Application Insights

Completado

Application Insights es una extensión de Azure Monitor y proporciona características de Supervisión de rendimiento de aplicaciones (también conocida como APM). Las herramientas de APM son útiles para supervisar aplicaciones desde el desarrollo hasta la producción, pasando por las pruebas, de la manera siguiente:

  • De manera proactiva comprende cómo funciona una aplicación.
  • De manera reactiva revisa los datos de ejecución de la aplicación para determinar la causa de un incidente.

Además de recopilar métricas y datos de telemetría de las aplicaciones, que describen las actividades y el estado de la aplicación, Application Insights también se puede usar para recopilar y almacenar datos de registro de seguimiento de aplicaciones.

El seguimiento del registro está asociado a otros datos de telemetría para proporcionar una vista detallada de la actividad. Agregar registro de seguimiento a las aplicaciones existentes solo requiere proporcionar un destino para los registros; rara vez es necesario cambiar la plataforma de registro.

Screenshot of the Application Insights dashboard, displaying categories of metrics collected for web app usage.

Qué supervisa Application Insights

Application Insights recopila datos de telemetría de aplicación y métricas, que describen las actividades y el estado de la aplicación, así como datos de registro de seguimiento.

  • Tasas de solicitud, tiempos de respuesta y tasas de error: identifique qué páginas son las más populares, en qué momento del día y dónde están los usuarios. Vea qué páginas presentan mejor rendimiento. Si los tiempos de respuesta y las tasas de error aumentan cuando hay más solicitudes, es posible que tenga un problema de recursos.
  • Tasas de dependencia, tiempos de respuesta y tasas de error: determine si los servicios externos le ralentizan.
  • Excepciones: analice las estadísticas agregadas o seleccione instancias concretas, y profundice en el seguimiento de la pila y las solicitudes relacionadas. Se notifican tanto las excepciones de servidor como las de explorador.
  • Vistas de página y rendimiento de carga: notificados por los exploradores de los usuarios.
  • Llamadas AJAX desde páginas web: tasas, tiempos de respuesta y tasas de error.
  • Recuentos de usuarios y sesiones.
  • Contadores de rendimiento de las máquinas de servidor de Windows o Linux, como CPU, memoria y uso de la red.
  • Diagnóstico de host de Docker o Azure.
  • Registros de seguimiento de diagnóstico de la aplicación: de esta forma puede correlacionar eventos de seguimiento con las solicitudes.
  • Métricas y eventos personalizados que usted mismo escribe en el código de cliente o servidor para realizar un seguimiento de eventos empresariales, como artículos vendidos o partidas ganadas.

Hay varias maneras de empezar a supervisar y analizar el rendimiento de las aplicaciones:

  • En tiempo de ejecución: instrumente la aplicación web en el servidor. Ideal para las aplicaciones ya implementadas. Evita toda actualización del código.
  • En tiempo de desarrollo: agregue Application Insights al código. Le permite personalizar la recopilación de telemetría y enviar más telemetría.
  • Instrumente sus páginas web para la vista de la página, AJAX y otros datos de telemetría del lado cliente.
  • Analice el uso de aplicaciones móviles mediante la integración con Visual Studio App Center.
  • Pruebas de disponibilidad : haga ping a su sitio web de manera regular desde nuestros servidores.

Tipos de métrica

Las métricas basadas en registros de Application Insights le permiten analizar el estado de las aplicaciones supervisadas, crear paneles eficaces y configurar alertas. Existen dos tipos de métricas:

  • Las métricas basadas en registros subyacentes se traducen en consultas de Kusto de eventos almacenados.
  • Las métricas estándar se almacenan como series temporales previamente agregadas.

Puesto que las métricas estándar se agregan previamente durante la recopilación, tienen un mejor rendimiento en el momento de la consulta. Las métricas estándar son una opción mejor para paneles y alertas en tiempo real. Las métricas basadas en registros tienen más dimensiones, lo que las convierte en la mejor opción para el análisis de datos y los diagnósticos ad hoc. Use el selector del espacio de nombres para cambiar entre las métricas basadas en registros y las métricas estándar en el explorador de métricas.

Métricas basadas en registros

Los desarrolladores pueden usar el SDK para enviar eventos manualmente (escribiendo código que invoca explícitamente el SDK) o pueden usar la recopilación automática de eventos de la instrumentación automática. En cualquier caso, el servidor back-end de Application Insights almacena todos los eventos recopilados como registros y las hojas de Application Insights en Azure Portal actúan como herramienta de análisis y diagnóstico para visualizar los datos basados en eventos de los registros.

El uso de registros para conservar un conjunto completo de eventos puede aportar gran valor al análisis y el diagnóstico. Por ejemplo, puede obtener el número exacto de solicitudes enviadas a una dirección URL determinada con el número de usuarios distintos que realizaron estas llamadas. O puede obtener seguimientos de diagnóstico detallados, incluidas las excepciones y llamadas de dependencia para cualquier sesión de usuario. Con este tipo de información puede mejorar considerablemente la visibilidad sobre el estado y el uso de la aplicación, lo que permite reducir el tiempo necesario diagnosticar los problemas de una aplicación.

Al mismo tiempo, recopilar un conjunto completo de eventos puede resultar poco práctico (o incluso imposible) en el caso de aplicaciones que generan un gran volumen de telemetría. En aquellos casos en los que el volumen de eventos sea demasiado alto, Application Insights implementa varias técnicas de reducción del volumen de datos de telemetría, tales como muestreo y filtrado, que reducen el número de eventos recopilados y almacenados. Lamentablemente, reducir el número de eventos almacenados reduce también la precisión de las métricas que, en segundo plano, deben realizar agregaciones en tiempo de consulta de los eventos almacenados en los registros.

Métricas agregadas previamente

Las métricas agregadas previamente no se almacenan como eventos individuales con muchas propiedades. En su lugar, se almacenan como series temporales previamente agregadas y solo con las dimensiones clave. Como consecuencia, las nuevas métricas son superiores en tiempo de consulta: la recuperación de datos es mucho más rápida y requiere menos capacidad de proceso. Esto hace posible nuevos escenarios, como alertas casi en tiempo real sobre las dimensiones de las métricas, paneles con más capacidad de respuesta y muchos más.

Los SDK actuales (SDK de Application Insights 2.7 o versiones posteriores para .NET) agregan previamente las métricas durante la recopilación. Esto se aplica a las métricas estándar enviadas de forma predeterminada, por lo que la precisión no se ve afectada por el muestreo o el filtrado. También se aplica a las métricas personalizadas enviadas mediante GetMetric, lo que genera una ingesta de datos y un costo menores.

En el caso de los SDK que no implementan la agregación previa, el servidor back-end de Application Insights agrega los eventos recibidos por el punto de conexión de recopilación de eventos de Application Insights para rellenar las nuevas métricas. Aunque no se beneficiará del menor volumen de datos que se transmiten por cable, puede seguir usando las métricas agregadas previamente y experimentar un mejor rendimiento y compatibilidad con las alertas dimensionales casi en tiempo real con los SDK que no agregan previamente las métricas durante la recopilación.

Merece la pena mencionar que el punto de conexión de la colección agrega previamente los eventos antes del muestreo de ingesta, lo que significa que el muestreo de ingesta no afectará nunca a la precisión de las métricas agregadas previamente, independientemente de la versión del SDK que use con su aplicación.