Contoso Airlines tiene hoy una plataforma repartida en aplicaciones web, una API en un conjunto de escalado, contenedores, funciones efímeras, colas, temas, bases de datos y servicios de IA. Cuando algo va mal, la pregunta ya no es «¿está caído el servidor?», sino «¿qué parte de esta cadena está fallando, desde cuándo, para cuántos pasajeros y por qué». Responder a eso requiere que el sistema emita información y que alguien la haya recogido antes de que pasara el problema. Esa es la disciplina que abre este módulo.
Esta lección es el mapa. Vas a entender qué es la observabilidad y sus tres señales, cómo Azure Monitor las agrupa todas bajo un mismo paraguas, cómo se configuran las métricas de plataforma y la pieza que casi todo el mundo olvida —la configuración de diagnóstico—, y cómo se construye un sistema de alertas que despierta a alguien solo cuando merece la pena. Todo sobre los recursos reales de Contoso.
Contenido
- Observabilidad: tres señales, no una alerta de CPU
- Azure Monitor como paraguas
- Métricas de plataforma y el explorador de métricas
- Configuración de diagnóstico: la pieza olvidada
- Registro de actividad, registros de recurso y registros del sistema operativo
- Alertas: tipos, condiciones y umbrales
- Grupos de acciones y reglas de procesamiento
- El conjunto de alertas de Contoso
- SLI, SLO y presupuesto de error
- Paneles y libros
- Coste de la monitorización
- Errores Comunes y Consejos
- Ejercicios
- Conclusión
- Observabilidad: tres señales, no una alerta de CPU
Monitorizar es comprobar que unos indicadores conocidos siguen dentro de rango. Observabilidad es la propiedad de un sistema que permite responder a preguntas que nadie había previsto, sin desplegar código nuevo. La diferencia importa: una alerta de CPU al 90 % es monitorización, y no habría dicho absolutamente nada sobre el pasajero que pagó y no recibió su tarjeta de embarque.
Las tres señales clásicas:
| Señal | Qué es | Naturaleza | Coste | En Azure | Responde a |
|---|---|---|---|---|---|
| Métricas | Números agregados en el tiempo | Series temporales numéricas | Muy bajo | Métricas de Azure Monitor | ¿Hay un problema? ¿Desde cuándo? |
| Registros | Eventos discretos con contexto | Texto y campos estructurados | Alto, crece con el volumen | Log Analytics | ¿Qué pasó exactamente? |
| Trazas | El recorrido de una petición entre componentes | Árbol de llamadas correlacionadas | Medio, con muestreo | Application Insights | ¿Dónde se rompió y por qué? |
La regla práctica: las métricas detectan, los registros explican, las trazas localizan. Un sistema que solo tiene métricas sabe que algo va mal y no sabe qué. Uno que solo tiene registros paga una fortuna y busca a ciegas. Contoso necesita las tres, y cada una tiene su lección en este módulo.
- Azure Monitor como paraguas
Azure Monitor no es un producto: es el nombre del conjunto. Conviene ver el mapa completo desde el principio para saber dónde encaja cada lección.
flowchart TB
subgraph ORI["Orígenes"]
A1["Recursos de Azure"]
A2["SO de VM y VMSS"]
A3["Código de la app"]
A4["Suscripción"]
end
subgraph PLAT["Plataformas de datos"]
M["Métricas<br/>93 días"]
L["Registros<br/>log-contoso-pro"]
end
subgraph EXP["Experiencias"]
AI["App Insights (07-03)"]
CI["Container / VM Insights"]
NW["Network Watcher"]
end
subgraph CON["Consumo"]
AL["Alertas y grupos<br/>de acciones"]
LI["Libros y paneles"]
EX["Exportación<br/>Event Hubs / Storage"]
end
A1 --> M
A1 -- "config. de diagnóstico" --> L
A2 -- "agente + DCR" --> L
A3 --> AI
A4 -- "registro de actividad" --> L
AI --> L
CI --> L
NW --> L
M --> AL
L --> AL
M --> LI
L --> LI
L --> EX
Tres ideas del diagrama: hay dos plataformas de datos —métricas y registros— con precios, retenciones y lenguajes de consulta distintos; los datos no llegan solos a los registros, hace falta una configuración de diagnóstico o un agente, y ese es el olvido más frecuente; e Insights (Application, Container, VM) no son almacenes separados, sino experiencias visuales montadas sobre esos mismos datos.
- Métricas de plataforma y el explorador de métricas
Las métricas de plataforma las emite Azure automáticamente, sin configurar nada y sin coste, para casi todos los recursos. Sus propiedades:
- Granularidad de un minuto en la mayoría de recursos, agregadas después a intervalos mayores.
- Retención de 93 días. Pasado ese plazo desaparecen, salvo que las exportes a Log Analytics.
- Dimensiones: atributos que permiten desglosar una métrica.
Http5xxde una App Service se puede desglosar por instancia; las peticiones de Storage, por tipo de API o por código de respuesta. - Agregaciones: promedio, mínimo, máximo, total y recuento. Elegir mal la agregación es el error clásico —el promedio de latencia de una hora oculta el pico que enfadó a los pasajeros.
Consulta desde CLI el tiempo de respuesta de la web de reservas:
# Identificador completo del recurso; casi todos los comandos de métricas lo piden
APP_ID=$(az webapp show \
--name app-contoso-reservas-pro \
--resource-group rg-contoso-reservas-pro \
--query id -o tsv)
# Métricas del último día, agrupadas en intervalos de 5 minutos
az monitor metrics list \
--resource "$APP_ID" \
--metric "HttpResponseTime" "Http5xx" "Requests" \
--start-time 2026-08-14T00:00:00Z \
--end-time 2026-08-15T00:00:00Z \
--interval PT5M \
--aggregation Average Maximum Total \
--output table--metricacepta varias métricas a la vez; sus nombres son los internos, no los del portal. Para descubrirlos:az monitor metrics list-definitions --resource "$APP_ID".--interval PT5Mes notación ISO 8601 de duración: 5 minutos.PT1Hsería una hora.--aggregationpide las tres agregaciones para poder comparar promedio y máximo en la misma tabla.
En el portal, el explorador de métricas hace lo mismo de forma visual: eliges recurso, métrica, agregación, y añades una división por dimensión. El flujo típico de Marta Ríos ante una queja de lentitud es: HttpResponseTime en promedio y en percentil, dividido por instancia. Si una sola instancia está lenta, es un problema de esa instancia; si lo están todas, el problema está detrás —normalmente en sql-contoso-reservas-pro.
- Configuración de diagnóstico: la pieza olvidada
Las métricas de plataforma existen solas. Los registros de recurso, no. Un App Service no envía a ningún sitio sus registros HTTP, ni SQL Database sus consultas lentas, ni Key Vault quién accedió a qué, hasta que creas una configuración de diagnóstico que diga qué categorías se exportan y adónde. Es habitual descubrirlo el día del incidente, cuando ya es tarde: los registros no existen retroactivamente.
Cada tipo de recurso publica sus propias categorías. Ejemplos reales:
| Recurso | Categorías útiles | Para qué |
|---|---|---|
| App Service | AppServiceHTTPLogs, AppServiceConsoleLogs, AppServiceAppLogs, AppServiceAuditLogs |
Peticiones, salida de la app, quién publicó |
| SQL Database | SQLInsights, QueryStoreRuntimeStatistics, Errors, Timeouts, Deadlocks |
Consultas lentas, bloqueos |
| Key Vault | AuditEvent |
Quién leyó cada secreto |
| Storage (blob) | StorageRead, StorageWrite, StorageDelete |
Accesos a tarjetas-embarque |
| Front Door | FrontDoorAccessLog, FrontDoorWebApplicationFirewallLog |
Tráfico y bloqueos del WAF |
| Service Bus | OperationalLogs |
Entregas y mensajes fallidos |
Y tres destinos posibles, combinables:
| Destino | Uso | Coste relativo | Consulta |
|---|---|---|---|
| Log Analytics | Investigación y alertas | Alto (por GB ingerido) | KQL, inmediata |
| Cuenta de almacenamiento | Archivo barato y cumplimiento | Muy bajo | Requiere descarga y proceso |
| Event Hubs | Envío a terceros (SIEM, Splunk) | Medio | Fuera de Azure |
Crear la configuración de diagnóstico de la web de reservas:
LOG_ID=$(az monitor log-analytics workspace show \
--workspace-name log-contoso-pro \
--resource-group rg-contoso-seguridad-pro \
--query id -o tsv)
az monitor diagnostic-settings create \
--name diag-reservas-a-log \
--resource "$APP_ID" \
--workspace "$LOG_ID" \
--logs '[
{"category":"AppServiceHTTPLogs","enabled":true},
{"category":"AppServiceAppLogs","enabled":true},
{"category":"AppServiceAuditLogs","enabled":true}
]' \
--metrics '[{"category":"AllMetrics","enabled":true}]' \
--export-to-resource-specific trueDos parámetros merecen atención. --export-to-resource-specific true hace que los datos aterricen en tablas dedicadas (AppServiceHTTPLogs) en lugar de en la tabla genérica AzureDiagnostics; es mejor esquema, mejor rendimiento y permite planes de tabla distintos, y lo aprovecharás en 07-02. --metrics AllMetrics duplica las métricas de plataforma en los registros: útil para correlacionar y conservarlas más allá de 93 días, pero es ingesta que se paga, así que actívalo solo donde lo necesites.
Hacer esto recurso a recurso no escala. Por eso Contoso ya tiene, dentro de la iniciativa «Base de gobernanza de Contoso» del módulo 4, la asignación diagnostico-app-service con efecto DeployIfNotExists: cualquier App Service nuevo recibe automáticamente su configuración apuntando a log-contoso-pro. El cumplimiento se comprueba con az policy state summarize --resource-group rg-contoso-reservas-pro. La política es lo que convierte «acuérdate de activar los diagnósticos» en una garantía. Recuerda que DeployIfNotExists solo actúa sobre recursos nuevos o al ejecutar una tarea de corrección sobre los existentes.
- Registro de actividad, registros de recurso y registros del sistema operativo
Tres capas que se confunden constantemente:
| Capa | Qué registra | Ejemplo en Contoso | Cómo se recoge |
|---|---|---|---|
| Registro de actividad | Operaciones del plano de control: quién creó, modificó o borró un recurso | «Diego Salas reinició app-contoso-api-disponibilidad-pro» |
Automático, 90 días; exportable |
| Registros de recurso | Lo que ocurre dentro del servicio | Petición HTTP, consulta lenta de SQL | Configuración de diagnóstico |
| Registros del SO | Sucesos y contadores del sistema operativo | Registro de eventos y syslog de vm-motor-disponibilidad-dev |
Agente de Azure Monitor + DCR |
El registro de actividad responde siempre a la pregunta «¿qué cambió justo antes de que se rompiera?», que resuelve una parte notable de los incidentes:
az monitor activity-log list --resource-group rg-contoso-reservas-pro \
--start-time 2026-08-14T06:00:00Z \
--query "[].{Hora:eventTimestamp, Quien:caller, Que:operationName.localizedValue, Estado:status.value}" -o tablePara las máquinas virtuales, el agente de Azure Monitor sustituye a los agentes antiguos y no decide por su cuenta qué recoger: lo determina una regla de recopilación de datos (DCR), un recurso independiente y reutilizable que dice qué orígenes se leen, cómo se transforman y a qué área van. Esa separación permite cambiar la recopilación de cien máquinas editando un único objeto: se crea la DCR dcr-contoso-servidores una vez y se asocia a cada máquina con az monitor data-collection rule association create.
Un detalle de coste con consecuencias: una DCR mal filtrada que recoja todo el syslog de un servidor locuaz puede costar más que la propia máquina virtual. Las DCR admiten transformaciones KQL en el momento de la ingesta para descartar lo irrelevante antes de pagarlo; volveremos sobre ello en 07-02.
- Alertas: tipos, condiciones y umbrales
Una alerta es una regla que evalúa un origen de datos y, si se cumple la condición, dispara un grupo de acciones. Los tipos disponibles:
| Tipo | Origen | Latencia típica | Coste | Ejemplo en Contoso |
|---|---|---|---|---|
| Métrica | Métricas de plataforma o personalizadas | ~1 min | Bajo, por serie temporal | DTU de db-reservas > 80 % |
| Búsqueda de registros | Consulta KQL sobre log-contoso-pro |
5-15 min | Mayor, según frecuencia | 20 excepciones del mismo tipo en 5 min |
| Registro de actividad | Plano de control | ~1 min | Gratuita | Alguien borra una regla del NSG |
| Estado del servicio | Incidencias de Azure | Inmediata | Gratuita | Degradación de App Service en West Europe |
| Estado del recurso | Salud del recurso concreto | ~1 min | Gratuita | vmss-api-disponibilidad-pro no disponible |
Las de estado del servicio y estado del recurso son gratuitas y casi nadie las configura, siendo las que distinguen «hemos roto algo» de «Azure tiene un problema en la región». Configúralas siempre.
Sobre los umbrales:
- Estático: tú fijas el número. Predecible y auditable. Adecuado cuando existe un compromiso —el SLO dice 800 ms, alertas a 800 ms.
- Dinámico: Azure aprende el patrón histórico, incluida la estacionalidad diaria y semanal, y alerta ante desviaciones. Ideal para métricas con ciclo natural: el tráfico de
app-contoso-reservas-procae de madrugada, y un umbral estático de «menos de 100 peticiones por minuto» dispararía cada noche.
Dos parámetros gobiernan el ruido: la frecuencia de evaluación (cada cuánto se comprueba) y la ventana de agregación (cuánto tiempo se agrega en cada comprobación). Evaluar cada minuto sobre una ventana de un minuto dispara ante cualquier pico transitorio. Contoso usa evaluación cada 5 minutos con ventana de 15 para latencia, y cada minuto con ventana de 5 para disponibilidad.
- Grupos de acciones y reglas de procesamiento
Un grupo de acciones es la lista de a quién se avisa y qué se ejecuta. Se define una vez y se reutiliza en todas las reglas.
az monitor action-group create \
--name ag-guardia-contoso \
--resource-group rg-contoso-seguridad-pro \
--short-name GuardiaCon \
--action email marta [email protected] \
--action email diego [email protected] \
--action sms guardia 34 600000000 \
--action webhook automatizacion https://ejemplo.contosoairlines.example/hook-runbook useCommonAlertSchema--short-name(máximo 12 caracteres) es lo que aparece como remitente en el SMS.useCommonAlertSchemafuerza el esquema común de alertas, un JSON con la misma forma para todos los tipos. Sin él, cada tipo de alerta manda una carga distinta y el consumidor se vuelve inmantenible. Actívalo siempre.
Los tipos de acción disponibles: correo, SMS, notificación push, llamada de voz, correo a un rol de Azure Resource Manager, webhook, webhook seguro con Entra ID, Logic App, Azure Function, runbook de Automation y conector ITSM. Contoso usa tres grupos:
| Grupo | Acciones | Cuándo |
|---|---|---|
ag-guardia-contoso |
SMS + correo + webhook | Gravedad 0 y 1: despierta a alguien |
ag-equipo-contoso |
Correo + mensaje a Teams vía Logic App | Gravedad 2: se mira en horario laboral |
ag-registro-contoso |
Solo webhook al sistema de incidencias | Gravedad 3 y 4: queda constancia |
Las reglas de procesamiento de alertas actúan sobre las alertas ya generadas, sin tocar las reglas. Sirven para dos cosas: silenciar durante una ventana de mantenimiento y añadir un grupo de acciones a un conjunto de alertas de golpe.
az monitor alert-processing-rule create \
--name apr-mantenimiento-sabado \
--resource-group rg-contoso-seguridad-pro \
--rule-type RemoveAllActionGroups \
--scopes "/subscriptions/<id>/resourceGroups/rg-contoso-reservas-dev" \
--schedule-recurrence Weekly --schedule-recurrence-days Saturday \
--schedule-start-time 02:00 --schedule-end-time 06:00 \
--description "Ventana de parcheo de desarrollo"Sin esto, la noche del despliegue mensual el equipo recibe cuarenta SMS, y a la tercera vez alguien silencia el teléfono de guardia de forma permanente. El ruido no es una molestia: es la forma en que un sistema de alertas se muere.
- El conjunto de alertas de Contoso
Esta es la tabla real que Marta mantiene, y su valor está tanto en lo que contiene como en lo que deliberadamente no contiene:
| Alerta | Origen | Condición | Gravedad | Grupo | A quién despierta |
|---|---|---|---|---|---|
Punto de salud /salud caído |
Prueba de disponibilidad | 3 de 5 ubicaciones fallan 5 min | 0 | ag-guardia-contoso |
Guardia, de madrugada |
| Latencia p95 de la API | Métrica de App Insights | p95 > 800 ms durante 15 min | 1 | ag-guardia-contoso |
Guardia |
| Errores 5xx en reservas | Métrica Http5xx |
> 25 en 5 min | 1 | ag-guardia-contoso |
Guardia |
Profundidad de cola-emision-tarjetas |
Métrica de Storage | > 500 mensajes durante 10 min | 2 | ag-equipo-contoso |
Diego, en horario |
DTU de db-reservas |
Métrica de SQL | > 85 % durante 20 min | 2 | ag-equipo-contoso |
DBA-Reservas |
| Certificado a punto de caducar | Registro de actividad / Key Vault | < 30 días de validez | 3 | ag-registro-contoso |
Incidencia, nadie |
| Estado del recurso del VMSS | Estado del recurso | Degradado o no disponible | 1 | ag-guardia-contoso |
Guardia |
Fíjate en lo que no hay: ninguna alerta de CPU, ninguna de memoria, ninguna de disco de aplicación. No porque no importen, sino porque son causas, no síntomas. Una CPU al 95 % con la latencia dentro del objetivo y sin errores no es un problema: es una máquina bien aprovechada. Alertar sobre causas produce despertares inútiles y, peor, entrena al equipo a ignorar el teléfono. Se alerta sobre lo que el pasajero nota; las causas se investigan después, con métricas y registros, que para eso están.
Una regla de métrica por CLI, para fijar el patrón (las etiquetas obligatorias también aquí: una regla de alerta es un recurso facturable y debe atribuirse a CC-1042):
az monitor metrics alert create \
--name alerta-5xx-reservas \
--resource-group rg-contoso-seguridad-pro \
--scopes "$APP_ID" \
--condition "total Http5xx > 25" \
--window-size 5m \
--evaluation-frequency 1m \
--severity 1 \
--action ag-guardia-contoso \
--description "Errores de servidor en la web de reservas" \
--tags entorno=produccion proyecto=contoso-reservas centro-coste=CC-1042 propietario=marta.rios
- SLI, SLO y presupuesto de error
Sin estos tres conceptos, los umbrales se eligen por intuición y se discuten para siempre.
- SLI (indicador de nivel de servicio): la medida concreta. «Porcentaje de peticiones a
/api/disponibilidadrespondidas correctamente en menos de 800 ms.» - SLO (objetivo de nivel de servicio): el valor comprometido. «99,5 % mensual.»
- Presupuesto de error: lo que el SLO te permite fallar. Un 99,5 % mensual son 3 horas y 39 minutos de incumplimiento.
El presupuesto de error convierte una discusión de opiniones en una de aritmética: si en la primera semana se ha consumido el 70 %, se congelan los cambios arriesgados y el esfuerzo va a fiabilidad; si a fin de mes sobra, se despliega con más alegría. Y responde a la pregunta incómoda que Nuria Peña hará en el módulo 8: pasar del 99,5 % al 99,99 % no cuesta un poco más, cuesta multiplicar la infraestructura.
- Paneles y libros
Dos herramientas que se parecen y no son lo mismo:
| Panel | Libro | |
|---|---|---|
| Qué es | Mosaico de elementos fijos | Documento interactivo con texto, parámetros y consultas |
| Parámetros | No | Sí: entorno, intervalo, recurso |
| Origen | Métricas y consultas fijadas | KQL, métricas, ARG, JSON externo |
| Uso típico | Pantalla de operaciones, siempre visible | Investigación guiada, informe mensual |
| Se comparte como | Recurso de Azure con su RBAC | Recurso de Azure, exportable como plantilla |
El panel de operaciones de Contoso vive en una pantalla del centro de control y muestra seis elementos: disponibilidad del punto de salud, peticiones por minuto y latencia p95 de la API, errores 5xx de la web, profundidad de cola-emision-tarjetas, DTU de db-reservas y alertas activas por gravedad. Nada más: un panel con treinta gráficas no lo mira nadie. El libro parametrizado «Salud de reservas» es en cambio la herramienta de investigación, con tres parámetros —intervalo, entorno y localizador— que rellenan las consultas KQL de la lección siguiente; la misma plantilla sirve para producción y desarrollo cambiando un desplegable, y se versiona en el repositorio contoso-infra junto a las plantillas Bicep. Las pruebas de disponibilidad que alimentan la primera alerta de la tabla pertenecen a Application Insights y se explican en 07-03.
- Coste de la monitorización
Un aviso que conviene interiorizar ya, aunque el detalle llegue en 07-02: la ingesta y la retención de datos en Log Analytics es una de las facturas de Azure que más sorprende. Nada te avisa de que has dejado activados los registros de depuración en producción; simplemente, a fin de mes la línea de Log Analytics es la mayor de la suscripción. Contoso lo vivió: activar AppServiceConsoleLogs en las cuatro aplicaciones durante una investigación y olvidarse de desactivarlo costó más que el plan de App Service que lo generaba.
| Elemento | Coste |
|---|---|
| Métricas de plataforma y su retención de 93 días | Gratuito |
| Registro de actividad, 90 días | Gratuito |
| Alertas de actividad, estado del servicio y estado del recurso | Gratuitas |
| Reglas de alerta de métrica | Céntimos por serie temporal supervisada al mes |
| Reglas de alerta de búsqueda de registros | Por regla y por frecuencia: evaluar cada minuto cuesta más |
| Notificaciones | Correo gratis hasta un límite; SMS y voz se pagan por mensaje |
| Ingesta y retención en Log Analytics | La partida dominante, por GB |
| Exportación a cuenta de almacenamiento | Muy barata, ideal para archivo |
Dos consecuencias prácticas: una alerta de registros evaluada cada minuto en cincuenta recursos es una factura considerable, así que ajusta la frecuencia a lo que realmente necesitas detectar; y las alertas con destino SMS conviene reservarlas para gravedades 0 y 1, que es justo lo que hace ag-guardia-contoso.
Errores Comunes y Consejos
- Creer que los registros existen sin configuración de diagnóstico. El día del incidente descubres que no hay nada, y los registros no aparecen retroactivamente. Actívalos con política, no a mano.
- Alertar sobre causas. CPU, memoria y disco generan ruido; alerta sobre síntomas visibles para el pasajero.
- Elegir mal la agregación. El promedio esconde los picos. Para latencia, percentiles; para errores, totales.
- No configurar las alertas gratuitas. Estado del servicio y estado del recurso no cuestan nada y evitan investigar durante una hora un problema que es de Azure.
- Ventanas de evaluación demasiado cortas o mantenimiento sin silenciar. Ambas producen ruido previsible, y el ruido mata la credibilidad del sistema: usa reglas de procesamiento de alertas.
- Consejo: define el SLO antes que el umbral. Si no sabes qué has prometido, cualquier número es discutible.
- Consejo: toda alerta debe llevar en su descripción un enlace al procedimiento de actuación; una alerta a las 3 de la mañana sin instrucciones es una alerta a medias. Y revisa trimestralmente cuáles se dispararon y qué se hizo con ellas: las que nunca llevaron a una acción, se borran.
Ejercicios
Ejercicio 1. Contoso quiere vigilar la nueva API pública de «Contoso Millas» (centro-coste=CC-2077), desplegada en un App Service de rg-contoso-reservas-dev. Define: qué señales activarías, con qué configuración de diagnóstico, tres alertas con su gravedad y grupo de acciones, y una decisión de coste justificada.
Ejercicio 2. Durante dos semanas el equipo ha recibido 340 alertas y ha actuado sobre 6. Analiza qué está pasando, propón cuatro medidas concretas y explica el riesgo de no hacer nada.
Ejercicio 3. El negocio pide para db-reservas un SLO de disponibilidad del 99,99 %. Calcula el presupuesto de error mensual, indica qué implica técnicamente y qué contrapropuesta harías.
Soluciones
Solución 1:
- Señales y diagnóstico: métricas de plataforma (gratuitas, ya existen); registros de recurso vía configuración de diagnóstico con
AppServiceHTTPLogsyAppServiceAppLogs—noAppServiceConsoleLogs, que es el que dispara la factura— hacialog-contoso-procon--export-to-resource-specific truey retención corta por ser un ensayo; y trazas con Application Insights (07-03). Si la asignacióndiagnostico-app-servicealcanza arg-contoso-reservas-dev, la configuración se despliega sola: conviene verificarlo. - Alertas: (1) estado del recurso, gravedad 1,
ag-guardia-contoso, gratuita; (2)Http5xx> 25 en 5 min, gravedad 2,ag-equipo-contoso, porque un proyecto secundario no justifica despertar a nadie; (3)HttpResponseTimecon umbral dinámico, gravedad 3,ag-registro-contoso, porque aún no hay línea base conocida. - Coste: notificaciones por correo, sin SMS, y evaluación cada 15 minutos en lugar de cada minuto. Etiquetas
entorno=desarrollo,proyecto=contoso-millas,centro-coste=CC-2077,propietario.
Solución 2: la ratio es de 1 acción por cada 57 avisos: el sistema ha dejado de ser informativo y el equipo ya ha aprendido a ignorarlo. Causas habituales: alertas sobre causas (CPU, memoria), ventanas de evaluación de un minuto que capturan picos transitorios, ausencia de silenciado durante despliegues y mantenimiento, y una misma incidencia que dispara diez reglas a la vez. Medidas: (1) eliminar toda alerta que no haya provocado una acción en tres meses; (2) ampliar ventanas de agregación a 15 minutos en métricas ruidosas y pasar a umbrales dinámicos donde hay estacionalidad; (3) crear reglas de procesamiento de alertas para las ventanas de despliegue y mantenimiento; (4) reasignar gravedades para que solo 0 y 1 usen SMS, dejando el resto en correo o incidencia. El riesgo de no actuar es concreto: la próxima caída real llegará como el aviso número 341 y nadie lo mirará.
Solución 3: el 99,99 % mensual deja 4 minutos y 23 segundos de presupuesto de error al mes —menos de lo que tarda una conmutación por error manual—. Técnicamente implica conmutación automática con fg-contoso-reservas, un nivel de servicio con el SLA correspondiente, redundancia de zona, reintentos con lógica de reconexión en la aplicación y despliegues sin tiempo de inactividad, además de que el SLA de Azure para un único servidor lógico ya no basta. Contrapropuesta razonable: 99,95 % para la base de datos (21 minutos y 54 segundos de presupuesto) combinado con un SLO de experiencia —«el pasajero puede consultar su reserva»— apoyado en una caché de solo lectura durante la conmutación. Cuesta una fracción y protege lo que el negocio realmente valora. Y, además, el compromiso debe medirse sobre un SLI acordado, no sobre la disponibilidad declarada por el proveedor.
Conclusión
Ya tienes el mapa completo. Sabes que la observabilidad se apoya en tres señales —métricas para detectar, registros para explicar, trazas para localizar— y que Azure Monitor es el paraguas que agrupa las dos plataformas de datos, las experiencias de Insights y el consumo mediante alertas, libros y paneles. Conoces las métricas de plataforma, gratuitas, con granularidad de un minuto y 93 días de retención, sus dimensiones y agregaciones, y cómo explorarlas sobre app-contoso-reservas-pro. Y, sobre todo, dominas la pieza que casi todo el mundo olvida: la configuración de diagnóstico, sus categorías por tipo de recurso, sus tres destinos y su despliegue a escala mediante la asignación diagnostico-app-service con DeployIfNotExists.
Distingues el registro de actividad —quién cambió qué— de los registros de recurso y de los del sistema operativo, recogidos por el agente de Azure Monitor con sus reglas de recopilación de datos. Has visto los cinco tipos de alerta, incluidas las gratuitas que casi nadie activa, los umbrales estáticos frente a los dinámicos y el papel de la frecuencia de evaluación; has creado ag-guardia-contoso con el esquema común de alertas y sabes silenciar el mantenimiento con reglas de procesamiento. El conjunto de alertas de Contoso te ha enseñado la regla que sostiene todo lo demás —alertar sobre síntomas, nunca sobre causas—, con SLI, SLO y presupuesto de error como criterio para elegir umbrales en lugar de discutirlos, y con paneles y libros parametrizados como superficie de consulta. Y llevas la advertencia de coste: métricas y alertas de plataforma son casi gratis, los SMS se pagan y la ingesta de registros es la partida que sorprende.
Precisamente ahí va la lección siguiente. Todo lo que has enviado con las configuraciones de diagnóstico ha aterrizado en log-contoso-pro, y hasta ahora solo lo has almacenado. En 07-02, Log Analytics y consultas KQL, aprenderás a interrogarlo: las tablas que te vas a encontrar, el lenguaje KQL desde cero y explicado línea a línea, el recorrido completo para investigar la queja del pasajero que pagó y no recibió su tarjeta de embarque, y las tres palancas —qué se ingiere, en qué plan y cuánto tiempo se guarda— con las que se controla esa factura que acabamos de anunciar.
Curso de Azure
Módulo 1: Introducción a Azure
- ¿Qué es Azure?
- Modelos de servicio, regiones y zonas de disponibilidad
- Crear y configurar tu cuenta de Azure
- Recorrido por el portal de Azure
- Azure Resource Manager: suscripciones, grupos de recursos y etiquetas
- Azure CLI, PowerShell y Cloud Shell
Módulo 2: Servicios principales de Azure
- Máquinas virtuales de Azure
- Escalado y alta disponibilidad del cómputo
- Azure App Service
- Azure Storage: blobs, archivos, colas y tablas
- Redes en Azure: redes virtuales, subredes y NSG
- Conectividad híbrida y entrega global
Módulo 3: Bases de datos de Azure
- Elegir el servicio de datos adecuado
- Azure SQL Database
- Azure Cosmos DB
- Azure Database for MySQL
- Azure Database for PostgreSQL
- Analítica de datos: Data Lake, Data Factory y Synapse
Módulo 4: Seguridad en Azure
- Microsoft Entra ID y gestión de identidades
- RBAC e identidades administradas
- Azure Key Vault
- Protección DDoS y firewall de aplicaciones web
- Microsoft Defender for Cloud
- Gobernanza y cumplimiento con Azure Policy
Módulo 5: Azure DevOps
- Introducción a Azure DevOps
- Azure Repos
- Azure Pipelines: integración continua
- Despliegue continuo con entornos y aprobaciones
- Azure Artifacts
- Infraestructura como código con Bicep
Módulo 6: Servicios avanzados de Azure
- Contenedores en Azure: Container Registry y Container Apps
- Azure Kubernetes Service (AKS)
- Azure Functions
- Azure Logic Apps
- Mensajería y eventos: Service Bus, Event Grid y Event Hubs
- Servicios de IA de Azure
Módulo 7: Monitoreo y gestión
- Azure Monitor: métricas, alertas y paneles
- Log Analytics y consultas KQL
- Application Insights
- Azure Automation y runbooks
- Copias de seguridad y recuperación ante desastres
Módulo 8: Gestión y optimización de costos
- Calculadora de precios y estimación de costes
- Azure Cost Management: análisis, presupuestos y alertas
- Reservas, planes de ahorro y Azure Hybrid Benefit
- Azure Advisor
- Estrategias de optimización y cultura FinOps
