Exploración de Application Insights

Completado

Application Insights es una solución de supervisión del rendimiento de aplicaciones (APM) de Azure que proporciona información detallada sobre cómo funcionan las aplicaciones y cómo interactúan los usuarios con ellas. A diferencia de la supervisión de la infraestructura (que se trata en unidades anteriores), Application Insights se centra en la telemetría de nivel de aplicación: solicitudes, dependencias, excepciones y eventos empresariales personalizados.

Funcionamiento de Application Insights

Instalación y configuración

Instale un paquete de instrumentación pequeño en la aplicación y configure un recurso de Application Insights en Microsoft Azure Portal. El proceso de configuración varía según la plataforma, pero generalmente implica lo siguiente:

1. Creación de un recurso de Application Insights:

  • Vaya a Azure Portal y cree un recurso de Application Insights.
  • Obtención de la clave de instrumentación o la cadena de conexión
  • El recurso puede ser independiente o vinculado a un área de trabajo de Log Analytics

2. Agregue instrumentación a la aplicación:

  • Instalación del SDK de Application Insights para la plataforma (.NET, Java, Node.js, Python)
  • Configuración de la clave de instrumentación en la aplicación
  • Opcionalmente, habilite características avanzadas (generación de perfiles, depuración de instantáneas)

3. Implementación de la aplicación instrumentada:

  • La instrumentación supervisa la aplicación y envía datos de telemetría al portal.
  • La aplicación se puede ejecutar en cualquier lugar; no tiene que hospedarse en Azure.
  • Funciona con aplicaciones locales, otros proveedores de nube, dispositivos perimetrales

¿Qué se instrumenta?

Puede instrumentar varios componentes de aplicación para obtener visibilidad completa:

Aplicación de servicio web:

  • ASP.NET, ASP.NET Core, aplicaciones Java Spring Boot, aplicaciones Node.js Express
  • Captura automáticamente solicitudes, tiempos de respuesta, excepciones
  • Realiza un seguimiento de las dependencias (llamadas de base de datos, API externas, colas de mensajes)

Componentes en segundo plano:

  • Azure Functions, WebJobs, Worker Services
  • Aplicaciones de consola y procesos por lotes
  • Tareas programadas y trabajos en segundo plano

JavaScript en páginas web:

  • El SDK del lado cliente se ejecuta en exploradores de usuarios
  • Realiza un seguimiento de las vistas de página, las llamadas AJAX, las excepciones del explorador
  • Mide el rendimiento del lado cliente (tiempo de carga de página, representación)
  • Supervisa aplicaciones de página única (React, Angular, Vue)

Diagrama que muestra Application Insights y telemetría para alertas, Power BI, Visual Studio, REST API y Exportación continua.

Recopilación completa de telemetría

Application Insights proporciona varios orígenes de telemetría para una observabilidad completa:

Integración del entorno de host:

  • Extracción de telemetría de entornos de host, como contadores de rendimiento, diagnósticos de Azure o registros de Docker
  • Correlación de métricas de infraestructura con el rendimiento de la aplicación
  • Comprender si los problemas son de nivel de aplicación o de infraestructura

Supervisión sintética:

  • Configuración de pruebas web periódicamente, para enviar solicitudes sintéticas al servicio web
  • Supervisión de la disponibilidad desde varias ubicaciones globales
  • Validación de escenarios de usuario de varios pasos
  • Alerta cuando los puntos de conexión no están disponibles

Análisis unificado:

  • Todos estos flujos de telemetría se integran en Azure Portal
  • Aplicación de herramientas de análisis y búsqueda eficaces a los datos sin procesar
  • Utilizar KQL para consultar todos los tipos de telemetría
  • Correlacionar eventos de diferentes orígenes mediante identificadores de operación

¿Cuál es la sobrecarga?

El impacto en el rendimiento de la aplicación es mínimo. Application Insights está diseñado para su uso en producción con un costo de rendimiento insignificante:

Características de rendimiento:

  • Las llamadas de seguimiento no son de bloqueo: La recopilación de telemetría no ralentiza el procesamiento de solicitudes
  • Transmisión por lotes: Los eventos se procesan por lotes y se envían en un subproceso independiente
  • Operaciones asincrónicas: Sin esperar a que se transmita la telemetría
  • Muestreo adaptable: Reduce automáticamente el volumen de datos mientras se mantiene la precisión estadística
  • Sobrecarga típica:<1% impacto en la CPU, aproximadamente 50-100 KB/s de red por instancia

Estrategias de muestreo:

  • Muestreo de frecuencia fija: Recopilar un porcentaje de todos los datos de telemetría (por ejemplo, 20%)
  • Muestreo adaptable: Ajusta automáticamente en función del volumen de tráfico.
  • Muestreo de ingesta: Aplicado en Azure Portal para reducir los datos almacenados
  • El muestreo conserva el contexto: La telemetría relacionada se muestrea conjuntamente

¿Qué supervisa Application Insights?

Application Insights está dirigido al equipo de desarrollo para ayudarle a comprender cómo funciona y se usa la aplicación. Proporciona una supervisión completa en varias dimensiones:

Métricas de rendimiento de aplicaciones

Tasas de solicitud, tiempos de respuesta y tasas de error:

  • Averigüe qué páginas son más populares, en qué horas del día y dónde se encuentran los usuarios.
  • Ver qué páginas funcionan mejor y cuáles necesitan optimización
  • Información clave: Si los tiempos de respuesta y las tasas de error aumentan con más solicitudes, es probable que tenga un problema de recursos o capacidad.

Tasas de dependencia, tiempos de respuesta y tasas de error:

  • Seguimiento de llamadas a bases de datos, API externas, colas de mensajes y almacenamiento
  • Averigüe si los servicios externos le ralentizan
  • Identificar las dependencias más lentas que afectan a la experiencia del usuario
  • Detectar fallos en cascada de servicios aguas abajo

Seguimiento de errores y excepciones

Excepciones:

  • Análisis de estadísticas agregadas que muestran tendencias de excepciones a lo largo del tiempo
  • Selección de instancias específicas y exploración en profundidad del seguimiento de la pila completo
  • Consulte las solicitudes relacionadas para comprender el contexto cuando se produjo una excepción.
  • Se notifican excepciones de servidor y explorador para obtener visibilidad completa
  • Seguimiento de excepciones sin gestionar frente a excepciones gestionadas

Supervisión del lado cliente

Vistas de página y rendimiento de carga:

  • Notificado por los navegadores de los usuarios que reflejan la experiencia del mundo real
  • Medición del tiempo para interactividad (TTI), Primera pintura con contenido (FCP)
  • Identificación de páginas de carga lenta que afectan a la experiencia del usuario

Llamadas AJAX desde páginas web:

  • Seguimiento de las tasas, los tiempos de respuesta y las tasas de error para las llamadas API
  • Identificar qué puntos de conexión de API son lentos desde la perspectiva del cliente
  • Supervisión de la navegación de la aplicación de página única (SPA)

Análisis de usuarios

Recuento de usuarios y sesiones:

  • Seguimiento de usuarios activos diarios/mensuales (DAU/MAU)
  • Descripción de la duración y la frecuencia de la sesión
  • Medición de la retención y renovación de usuarios

Integración de la infraestructura

Contadores de rendimiento:

  • Recoge de máquinas de servidor Windows o Linux
  • Incluir uso de CPU, memoria y red
  • Correlación de métricas de infraestructura con el rendimiento de la aplicación

Diagnósticos de host:

  • Supervisión de contenedores de Docker y recursos de Azure
  • Seguimiento del uso de recursos por contenedor
  • Comprender la salud de la infraestructura junto a la salud de la aplicación

Funcionalidades de diagnóstico

Registros de seguimiento de diagnóstico:

  • Capturar registros del framework de la aplicación (ILogger, Log4j, etc.)
  • Correlación de eventos de seguimiento con solicitudes mediante identificadores de operación
  • Buscar registros de errores o patrones específicos
  • Filtrar por nivel de gravedad, intervalo de tiempo o propiedades personalizadas

Telemetría empresarial personalizada

Eventos y métricas personalizados:

  • Escritura de telemetría personalizada en código de cliente o servidor
  • Realizar un seguimiento de eventos empresariales, como artículos vendidos, juegos ganados, suscripciones creadas
  • Mide métricas específicas del negocio, como el valor del carrito, los pasos de embudo de conversión
  • Crear dimensiones personalizadas para la segmentación (nivel de cliente, marcas de características)

¿Dónde veo la telemetría?

Application Insights proporciona varias interfaces para explorar los datos, cada una optimizada para diferentes escenarios. Hay muchas maneras de explorar los datos.

Detección inteligente y alertas

La detección inteligente y las alertas manuales proporcionan una notificación proactiva de problemas:

Las alertas automáticas se adaptan a los patrones de telemetría usuales de tu aplicación y se activan cuando hay algo que se desvía de lo habitual. Los algoritmos de aprendizaje automático identifican:

  • Aumento anómalo de las tasas de error: Pico repentino en excepciones o solicitudes con errores
  • Degradaciones del rendimiento: Tiempos de respuesta más lentos que los patrones típicos
  • Fugas de memoria: Aumento gradual de la memoria a lo largo del tiempo
  • Anomalías de dependencia: Llamadas de servicio externo que muestran un comportamiento inusual

También puede establecer alertas manuales en niveles de métricas personalizadas o estándar con umbrales configurables, niveles de gravedad y grupos de acciones.

Captura de pantalla de las alertas establecidas que muestran un aumento anómalo en la tasa de solicitudes con errores en la aplicación fabrikamprod.

Mapa de aplicaciones

Visualice los componentes de la aplicación con métricas y alertas clave. El mapa de la aplicación detecta automáticamente:

  • Topología de aplicación: Todos los componentes y sus conexiones
  • Relaciones de dependencia: Qué servicios llaman a qué dependencias
  • Indicadores de salud: Estado de salud codificado por color por componente
  • Métricas clave: Tasa de solicitudes, tasa de errores, tiempo de respuesta por componente
  • Alertas activas: Indicadores visuales que muestran qué componentes tienen problemas

Casos de uso: Identifique rápidamente qué componente de un sistema distribuido produce errores, comprenda los patrones de llamada, planee la capacidad por servicio.

Captura de pantalla del mapa de la aplicación con los componentes de la aplicación, las métricas clave y las alertas.

Application Insights Profiler

Inspeccione los perfiles de ejecución de solicitudes muestreadas para identificar cuellos de botella de rendimiento:

  • Rendimiento de nivel de código: Ver exactamente qué métodos consumen más tiempo
  • Visualización del árbol de llamadas: Comprender la ruta de ejecución de tu código
  • Generación de perfiles muestreada recopilación con baja sobrecarga de entornos de producción
  • Gráficos de llama: Representación visual del tiempo invertido en cada función

Casos de uso: Identifique consultas lentas de base de datos, algoritmos ineficaces, asignaciones excesivas de cadenas, competencia por bloqueos.

Captura de pantalla del generador de perfiles. Inspeccione los perfiles de ejecución de las solicitudes muestreadas.

Análisis de uso

Analice la segmentación y retención de usuarios para comprender cómo interactúan los usuarios con la aplicación:

  • Flujos de usuario: Visualización de rutas de navegación a través de la aplicación
  • Embudos: seguimiento de las tasas de conversión mediante procesos de varios pasos
  • Cohortes: Agrupar usuarios por comportamiento o atributos para la comparación
  • Retención: Medición del número de usuarios que devuelven con el tiempo
  • Análisis de impacto: Correlación del rendimiento con el comportamiento del usuario

Casos de uso: Optimice los embudos de conversión, comprenda la adopción de características, identifique a los usuarios en riesgo, mida el ajuste al mercado del producto.

Captura de pantalla del análisis de uso con segmentación y retención de usuarios.

Buscar y filtrar eventos para una investigación detallada:

  • Tipos de eventos: Solicitudes, excepciones, llamadas de dependencia, seguimientos de registro, vistas de página, eventos personalizados
  • Filtrado: Por intervalo de tiempo, código de resultado, nombre de operación, propiedades personalizadas
  • Búsqueda de texto completo: Búsqueda de eventos que contienen texto específico
  • Telemetría relacionada: Haga clic en un evento para ver todos los datos de telemetría relacionados (transacción de un extremo a otro)

Casos de uso: Investigue problemas específicos notificados por el usuario, busque errores para clientes específicos, solicitudes de seguimiento en sistemas distribuidos.

Captura de pantalla de los eventos de búsqueda y filtrado, como solicitudes, excepciones, llamadas de dependencia, seguimientos de registro y vistas de página.

Explorador de métricas

Explore, filtre y segmente los datos agregados:

  • Métricas: Tasas de solicitudes, errores, excepciones, tiempos de respuesta, tiempos de carga de página, métricas personalizadas
  • Desdoblamiento: Segmentar por dimensiones (rol en la nube, geografía, explorador, dispositivo)
  • Filtrado: Centrarse en valores específicos
  • Agregación: mínimo, máximo, promedio, suma, percentiles
  • Granularidad de tiempo: depósitos de un minuto a un mes

Casos de uso: Planeamiento de la capacidad, seguimiento del Acuerdo de Nivel de Servicio, comparación del rendimiento entre regiones, identificación de tendencias.

Captura de pantalla de las métricas y segmentos de datos agregados, como tasas de solicitudes, errores y excepciones, tiempos de respuesta y tiempos de carga de páginas.

Paneles

Combinar datos de múltiples fuentes y compartirlos con otros.

  • Varios recursos: Combinación de datos de varias instancias de Application Insights
  • Azulejos personalizables: Fijar consultas, métricas y visualizaciones
  • Paneles compartidos: Publicar a equipos para seguimiento colaborativo
  • Visualización continua: Ideal para aplicaciones multicomponente y salas de equipo

Casos de uso: paneles ejecutivos, salas de control durante incidentes, conciencia situacional del equipo, pantallas de estado.

Captura de pantalla de paneles de control de varios recursos, ideales para aplicaciones multicomponente y monitoreo continuo en la sala del equipo.

Live Metrics Stream

Vea los indicadores de rendimiento casi en tiempo real:

  • Actualización de 1 segundo: Consulte las métricas que se actualizan en tiempo real.
  • Validación de implementación: Al implementar una nueva compilación, asegúrese de que todo funciona según lo previsto.
  • Eventos en directo: Flujo de solicitudes, dependencias, excepciones a medida que se producen
  • Estado del servidor: Vista dinámica del recuento de servidores, CPU, memoria
  • Filtrado: Centrarse en servidores específicos o tipos de error

Casos de uso: Validación de implementación, solución de problemas en vivo, observación de pruebas de carga, respuesta a incidentes.

Captura de pantalla de Live Metrics Stream con indicadores de rendimiento casi en tiempo real.

Analíticas (consultas KQL)

Responda a preguntas complejas sobre el rendimiento y el uso de la aplicación mediante este lenguaje de consulta eficaz:

  • KQL (Lenguaje de Consulta Kusto): Mismo lenguaje tratado en la unidad anterior
  • Análisis ad hoc: Exploración de datos sin vistas predefinidas
  • Combinaciones complejas: Correlación de datos entre varias tablas
  • Visualizaciones avanzadas: Creación de gráficos personalizados y series temporales
  • Consultas guardadas: Reutilización de patrones de análisis comunes

Casos de uso: Análisis de causa principal, planeamiento de capacidad, informes personalizados, exploración de datos.

Captura de pantalla de Analytics en la que se muestran las preguntas desafiantes sobre el rendimiento y el uso de la aplicación mediante este lenguaje de consulta eficaz.

Integración de Visual Studio

Consulte los datos de rendimiento en el código:

  • CodeLens: Métricas de rendimiento mostradas en línea en el editor de código
  • Ir al código desde seguimientos de pila: haga clic en la excepción en el portal y salte a la línea de código
  • Depuración local: Integración de Application Insights en el depurador de Visual Studio
  • Tendencias: Tendencias históricas de rendimiento para métodos específicos

Casos de uso: Optimización del rendimiento durante el desarrollo, depuración de problemas de producción localmente.

Captura de pantalla de Visual Studio que muestra los datos de rendimiento en el código.

Snapshot Debugger

Depuración de instantáneas muestreadas de operaciones dinámicas:

  • Depuración de producción: captura de instantáneas de memoria completa desde producción
  • Valores de parámetro: Consulte variables y parámetros locales en el momento de la excepción.
  • Pila de llamadas: seguimiento de la pila completo con los valores de las variables en cada marco
  • Sin impacto en el rendimiento: Instantáneas recopiladas con una sobrecarga mínima
  • Controles de privacidad: Configuración de los datos que se van a capturar

Casos de uso: Depurar problemas de producción de forma difícil de reproducir, comprender las excepciones en entornos de cliente.

Recorte de pantalla del depurador de instantáneas. Depuración de instantáneas muestreadas de operaciones dinámicas con valores de parámetro.

Integración de Power BI

Integre las métricas de uso con otra inteligencia empresarial:

  • Informes personalizados: Creación de paneles de Power BI que combinan Application Insights y datos empresariales
  • Actualización programada: Actualizaciones automáticas de datos
  • Correlación: Vinculación de métricas técnicas a resultados empresariales
  • Informes ejecutivos: Presentar datos técnicos en el contexto empresarial

Casos de uso: Informes de nivel de panel, correlación del rendimiento de la aplicación con ingresos, informes de cumplimiento del Acuerdo de Nivel de Servicio.

Captura de pantalla de Power BI. Integre las métricas de uso con otra inteligencia empresarial.

REST API

Escriba código para ejecutar consultas sobre las métricas y los datos sin procesar:

  • Acceso mediante programación: Consulta de Application Insights desde sus propias aplicaciones
  • Automatización: Creación de soluciones de supervisión personalizadas
  • Integración: Conexión a flujos de trabajo y herramientas de terceros
  • Procesamiento personalizado: Exportación de datos para el análisis avanzado

Casos de uso: Paneles personalizados, sistemas de supervisión del Acuerdo de Nivel de Servicio, informes automatizados, flujos de trabajo de ciencia de datos.

Captura de pantalla de la API REST. Escriba código para ejecutar consultas sobre las métricas y los datos sin procesar.

Exportación continua

Exportación masiva de datos sin procesar al almacenamiento tan pronto como llegue:

  • Azure Storage: Exportación a Blob Storage para la retención a largo plazo
  • Event Hubs: Transmisión a sistemas de procesamiento en tiempo real
  • Data Lake: Integración con plataformas de análisis de macrodatos
  • Conformidad: Cumplir los requisitos de residencia y retención de datos
  • Optimización de costos: Almacenamiento de datos en niveles de almacenamiento más baratos

Casos de uso: Archivado a largo plazo, alimentación de almacenes de datos, requisitos de cumplimiento, análisis personalizado a escala.

Recorte de pantalla de exportación masiva. Exportación masiva de datos sin procesar al almacenamiento en cuanto llegue.