Exploración de Application Insights
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)
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.
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.
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.
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.
Búsqueda de diagnóstico
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.