AZ-104
Deep Dive
Application Insights es la solución de APM (Application Performance Management) de Azure Monitor. Proporciona telemetría profunda de aplicaciones: requests, dependencias, excepciones, trazas y disponibilidad. El AZ-104 evalúa su configuración y las soluciones Insights por servicio.
Contenido
Application Insights es un servicio de APM (Application Performance Monitoring) extensible que monitorea aplicaciones en vivo. Detecta anomalías de rendimiento automáticamente, incluye herramientas de diagnóstico potentes y trabaja con múltiples lenguajes/frameworks.
Lenguajes y frameworks soportados
Qué monitorea
Dónde se usa
Classic vs Workspace-based
Classic (legacy)
Almacenamiento propio aislado. Sin acceso desde Log Analytics. En deprecación.
Workspace-based (recomendado)
Los datos se almacenan en un Log Analytics Workspace. Queries KQL, RBAC unificado, retención configurable, correlación con otros datos del workspace.
Conceptos clave
• Instrumentation Key: clave única del recurso. Deprecated — migrar a Connection String.
• Connection String: configuración completa de conexión. Recomendado para nuevas apps.
• Sampling: para reducir volumen de datos y costos. Adaptive sampling ajusta automáticamente.
• Live Metrics: telemetría en tiempo real sin latencia para debugging en producción.
SDK (manual)
Incluir el paquete NuGet/npm/pip en la aplicación y configurar la Connection String. Máximo control sobre qué se instrumenta y cómo.
Ventajas
Limitaciones
Auto-instrumentación (sin código)
Azure inyecta el agente automáticamente sin modificar el código. Disponible en App Service, Azure Functions, y Java con agente.
Ventajas
Limitaciones
| Tipo | Tabla KQL | Qué captura | Ejemplo |
|---|---|---|---|
| Requests | requests | Peticiones HTTP entrantes a la app | GET /api/orders — 200ms — Success |
| Dependencies | dependencies | Llamadas a servicios externos (SQL, HTTP, Redis) | SQL query "SELECT * FROM Orders" — 50ms |
| Exceptions | exceptions | Excepciones no manejadas y errores | NullReferenceException en OrderService.cs:42 |
| Traces | traces | Logs de texto de la aplicación (ILogger, log4j) | Processing order 12345 |
| Custom Events | customEvents | Eventos de negocio personalizados | OrderCompleted, UserRegistered, FeatureEnabled |
| Custom Metrics | customMetrics | Métricas numéricas de negocio | QueueLength=342, OrderValue=99.99 |
| Page Views | pageViews | Vistas de páginas (browser SDK) | /checkout — 1.2s carga — Chrome |
| Availability | availabilityResults | Resultados de tests de disponibilidad | Ping https://myapp.com — Success — 120ms |
Application Map
Mapa visual automático de las dependencias de la aplicación. Muestra todos los componentes (frontend, backend, DBs, APIs externas) y el rendimiento de cada conexión. Identifica cuellos de botella y fallos rápidamente. Se genera automáticamente a partir de los datos de dependencies.
End-to-End Transaction Diagnostics
Correlaciona todas las operaciones de una petición end-to-end: desde el request HTTP, pasando por dependencias SQL/Redis, hasta los logs y excepciones — todo con el mismo correlationId. Permite ver exactamente qué pasó en cada capa de la aplicación durante una transacción específica.
Los Availability Tests son pruebas periódicas enviadas desde múltiples ubicaciones geográficas de Azure para verificar que tu aplicación está disponible y respondiendo correctamente desde internet.
URL ping test
Simple HTTP GET a una URL. Verifica código de respuesta y tiempo de carga. Hasta 5 ubicaciones simultáneas. Más sencillo y sin costo adicional.
Standard test
Similar a URL ping pero con soporte para SSL lifetime checks, HTTP verbs personalizados, custom headers, request body, response validation.
Custom TrackAvailability
Llamas al SDK con trackAvailability() para reportar resultados de tests de disponibilidad personalizados — ej: tests de login, flujos de negocio end-to-end.
Configuración de alertas de disponibilidad
• Frecuencia de test: 5, 10 o 15 minutos
• Ubicaciones: elegir 5+ para detectar outages regionales
• Threshold de alerta: ej, alerta si 3 de 5 ubicaciones fallan
• Retry logic: el test reintenta antes de considerar fallo para reducir falsos positivos
• Los resultados se almacenan en tabla availabilityResults
Smart Detection es la detección automática de anomalías de rendimiento y fallos usando machine learning. No requiere configurar umbrales — aprende el comportamiento normal de la app y alerta cuando detecta desviaciones significativas.
Failure Anomalies
Detecta aumentos anormales en la tasa de fallos de requests o dependencias, comparando con el baseline histórico de la app. Tiene en cuenta patrones como más fallos en días de tráfico alto.
Performance Degradation
Detecta degradación en tiempos de respuesta de requests o dependencias. Alerta cuando el percentil P90 aumenta significativamente respecto al baseline.
Memory Leak Detection
Detecta patrones de crecimiento de uso de memoria que sugieren memory leaks. Útil para detectar problemas antes de que causen OOM en producción.
Slow Page Load
Detecta páginas específicas con tiempos de carga anormalmente lentos comparando con el historial de la misma página.
VM Insights
Solución de monitoreo predefinida para VMs y VMSS. Proporciona vistas curadas de rendimiento (CPU, memoria, disco, red), mapa de dependencias (qué procesos están conectando con qué) y tabla de datos de agente.
• Requiere: Azure Monitor Agent + Data Collection Rule
• Performance view: métricas de top N VMs con mayor CPU/memoria
• Map view: visualización de conexiones TCP entre procesos y VMs
• Soporta Azure Arc (máquinas on-premises)
• Datos en tablas: InsightsMetrics, VMComputer, VMConnection
Container Insights
Solución de monitoreo para AKS y contenedores. Recopila métricas y logs de nodos, pods y contenedores.
• Habilitar desde: AKS → Monitoring → Insights o desde Azure Monitor
• Métricas: CPU y memoria de nodos y pods, count de pods
• Logs de contenedores: stdout/stderr de cada contenedor
• Vistas curadas: Cluster utilization, Node utilization, Pod failures
• Datos en tablas: ContainerLog, KubePodInventory, KubeNodeInventory
¿Entendiste este tema?
Pon a prueba lo que acabas de aprender
Una aplicación web en Azure App Service está experimentando errores 500 intermitentes. Un administrador quiere ver el stack trace completo y correlacionar los errores con las queries de base de datos que los precedieron. ¿Qué herramienta proporciona esta visibilidad?