beginner Por Mathias Paulenko

Plantilla de Politica de Monitoreo y Alertas

Una plantilla de politica que define como se configuran, enrutan, escalan y revisan las alertas en servicios e infraestructura.

Nota para desarrolladores hispanohablantes: Esta guía incluye ejemplos y convenciones de nomenclatura adaptadas a equipos que trabajan en español. Cuando existen diferencias significativas en terminología técnica entre el inglés y el español, se indican explícitamente para facilitar la comunicación en equipos multiculturales.

Descripcion General

Una Politica de Monitoreo y Alertas define como una organizacion detecta problemas, notifica a las personas correctas y escala cuando los incidentes no se resuelven rapidamente. Sin una politica clara, los equipos sufren fatiga de alertas, incidentes perdidos o tiempos de respuesta inconsistentes. Esta plantilla proporciona un marco estructurado para umbrales, niveles de severidad, reglas de enrutamiento, caminos de escalacion y revision regular.

Cuando Usar

  • For alternatives, see Complete Guide to Observability with the Grafana Stack.

  • Configurar una nueva plataforma de observabilidad o stack de monitoreo.

  • Incorporar un nuevo servicio o equipo al sistema de alertas.

  • Revisar la calidad de alertas despues de un periodo de ruido o incidentes perdidos.

  • Definir responsabilidades de guardia y caminos de escalacion.

  • Prepararse para una auditoria de madurez operacional o respuesta a incidentes.

Prerequisitos

  • Una plataforma de monitoreo y observabilidad como Prometheus, Datadog, Grafana, New Relic o PagerDuty.
  • Una lista de servicios criticos y componentes de infraestructura.
  • Rotaciones de guardia y contactos de escalacion definidos.
  • Un canal de comunicacion para alertas, como Slack, Microsoft Teams o correo.
  • Un proceso de respuesta a incidentes que las alertas activaran.

Solucion

Plantilla de Politica

1. Niveles de Severidad de Alertas

SeveridadTiempo de RespuestaEjemploCanal de Notificacion
P1 - CriticaInmediato (5 min)Servicio caido, perdida de datos, impacto en ingresosPagina al guardia + notificacion ejecutiva
P2 - Alta15 minutosRendimiento degradado, backups fallidosPagina al guardia + alerta Slack
P3 - Media1 horaTasa de errores alta, presion de recursosSlack o correo al equipo dueno
P4 - BajaProximo dia laboralAdvertencia de capacidad, desviacion no urgenteCorreo o aviso en dashboard
P5 - InformativaNingunoMetricas de uso, datos de tendenciaSolo dashboard

2. Categorias de Alertas

CategoriaPropositoEjemplos
DisponibilidadDetectar servicio inalcanzableHTTP 5xx, timeout de conexion, falla de health check
RendimientoDetectar latencia y throughputLatencia p99 > 500ms, profundidad de cola alta
CapacidadDetectar agotamiento de recursosCPU > 85%, disco > 80%, presion de memoria
Tasa de errorDetectar tasas de falla inusualesTasa de error > 1% durante 5 minutos
SeguridadDetectar actividad sospechosaInicios de sesion fallidos, limites de tasa, trafico bloqueado
NegocioDetectar impacto en ingresos o flujosPagos fallidos, caida de ordenes, registro fallido
Salud de datosDetectar problemas de calidad o pipelinesDatos obsoletos, particiones faltantes, lag de sincronizacion

3. Matriz de Enrutamiento de Alertas

EquipoHorario PrincipalHorario de GuardiaCanalesCamino de Escalacion
Equipo de plataforma08:00 - 18:00 UTC24/7PagerDuty, #platform-alertsGerente, luego VP de Ingenieria
Equipo de aplicacion08:00 - 18:00 UTC24/7PagerDuty, #app-alertsLider de equipo, luego Gerente de ingenieria
Equipo de seguridad24/724/7PagerDuty, #security-alertsLider de seguridad, luego CISO
Equipo de bases de datos08:00 - 18:00 UTC24/7PagerDuty, #db-alertsLider DBA, luego Gerente de plataforma
Operaciones de negocioHorario laboralNingunoCorreo, SlackGerente de operaciones

4. Lineamientos de Umbrales de Alerta

SenalUmbral de AdvertenciaUmbral CriticoVentana de Evaluacion
Tasa de error HTTP> 1% durante 5 min> 5% durante 2 min5 minutos movil
Latencia p99> 500ms durante 10 min> 1s durante 5 min10 minutos movil
Utilizacion CPU> 70% durante 10 min> 90% durante 5 min5 minutos movil
Utilizacion disco> 75% durante 1 hora> 90% durante 15 min15 minutos movil
Utilizacion memoria> 80% durante 10 min> 95% durante 5 min5 minutos movil
Profundidad de cola> 1000 durante 10 min> 5000 durante 5 min5 minutos movil
Backup fallidoN/ACualquier backup fallidoPor ejecucion del job
Vencimiento certificado SSL< 30 dias< 7 diasVerificacion diaria

5. Reglas de Escalacion

SeveridadAlerta InicialSin ReconocimientoAun Sin ResolverEscalacion Final
P1Pagina al guardia inmediatamente5 min15 minNotificacion ejecutiva + sala de guerra
P2Pagina al guardia15 min30 minPagina al gerente
P3Slack al equipo dueno1 hora4 horasNotificacion al gerente
P4Correo o dashboardProximo dia laboralN/ARevision semanal

6. Revision y Mantenimiento de Alertas

ActividadFrecuenciaDuenoSalida
Revision de calidad de alertasSemanalIngeniero de guardiaAlertas mas ruidosas, acciones de ajuste
Revision de runbooks de alertasMensualEquipo SRERunbooks actualizados para cada alerta
Calibracion de umbralesTrimestralEquipo de observabilidadAjustes de umbrales con evidencia
Retro de guardiaDespues de incidente mayorComandante de incidenteMejoras de alertas, tareas de seguimiento
Revision de politicaAnualLiderazgo de ingenieriaDocumento de politica actualizado

Explicacion

Esta politica convierte senales de monitoreo en alertas útiles. Al asignar severidad, enrutamiento y reglas de escalacion, la organizacion asegura que los problemas criticos reciban atencion rapida mientras que las advertencias de baja prioridad no interrumpen a los ingenieros de guardia. La seccion de revision y mantenimiento previene la fatiga de alertas mediante el ajuste continuo de umbrales y la eliminacion de alertas ruidosas.

Reglas de Alerta de Prometheus (Ejemplo)

groups:
  - name: api_alerts
    interval: 30s
    rules:
      - alert: HighErrorRate
        expr: |
          sum(rate(http_requests_total{status=~"5.."}[5m])) by (service)
          / sum(rate(http_requests_total[5m])) by (service) > 0.05
        for: 2m
        labels:
          severity: P1
          team: platform
        annotations:
          summary: "{{ $labels.service }} tasa de error > 5%"
          description: "{{ $labels.service }} tiene {{ $value | humanizePercentage }} tasa de error por 2 minutos"
          runbook: "https://runbooks.example.com/high-error-rate"

      - alert: HighLatencyP99
        expr: |
          histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[10m])) by (le, service)) > 1
        for: 5m
        labels:
          severity: P2
          team: platform
        annotations:
          summary: "{{ $labels.service }} latencia p99 > 1s"
          runbook: "https://runbooks.example.com/high-latency"

      - alert: DiskSpaceLow
        expr: |
          (node_filesystem_avail_bytes{mountpoint="/"}
          / node_filesystem_size_bytes{mountpoint="/"}) * 100 < 10
        for: 15m
        labels:
          severity: P2
          team: infrastructure
        annotations:
          summary: "Espacio en disco < 10% en {{ $labels.instance }}"
          runbook: "https://runbooks.example.com/disk-space"

Configuracion de Enrutamiento de Alertmanager

route:
  receiver: default
  group_by: ["alertname", "service", "severity"]
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 4h
  routes:
    - matchers:
        - severity = "P1"
      receiver: pagerduty-critical
      group_wait: 0s
      repeat_interval: 30m
    - matchers:
        - severity = "P2"
      receiver: pagerduty-warning
      group_wait: 30s
      repeat_interval: 2h
    - matchers:
        - severity = "P3"
      receiver: slack-alerts
      group_wait: 5m
    - matchers:
        - severity = "P4"
      receiver: email-alerts
      group_wait: 1h

receivers:
  - name: pagerduty-critical
    pagerduty_configs:
      - service_key: "P1_KEY"
  - name: pagerduty-warning
    pagerduty_configs:
      - service_key: "P2_KEY"
  - name: slack-alerts
    slack_configs:
      - channel: "#alerts"
        api_url: "SLACK_WEBHOOK_URL"
  - name: email-alerts
    email_configs:
      - to: "team@example.com"
  - name: default
    slack_configs:
      - channel: "#alerts"

Tabla de Puntuacion de Calidad de Alertas

Revisa cada alerta trimestralmente con esta tabla:

CriterioPuntuacion (1-5)Notas
Accionable: La alerta desencadena una respuesta clara?
Precision: La tasa de falsos positivos es menor a 5%?
Oportuna: La alerta se dispara antes del impacto al usuario?
Enrutada: Llega al equipo que puede resolverla?
Documentada: Hay un runbook vinculado?
Unica: Esta alerta es redundante con otra?

Puntuacion total menor a 18 significa que la alerta necesita ajuste o eliminacion.

Variantes

  • Politica de alertas cloud-native: Usa Prometheus Alertmanager, Grafana Oncall o PagerDuty para ambientes de contenedores y serverless.
  • Politica de monitoreo empresarial: Se enfoca en infraestructura, red e integracion con service desk.
  • Politica de alertas de seguridad: Enfatiza reglas de SIEM, deteccion de amenazas y disparadores de respuesta a incidentes.
  • Alertas de operaciones de negocio: Rastrea KPIs, ingresos y metricas orientadas al cliente con notificaciones en horario laboral.
  • Alertas self-service para desarrolladores: Permite a los equipos definir sus propias reglas de alerta dentro de guardrails.

Lo que funciona

  • Alerta sobre sintomas que afectan a los usuarios, no solo metricas internas.
  • Usa umbrales de multi-ventana o multi-tasa de quemado para reducir falsos positivos.
  • Requiere que cada alerta tenga un runbook o enlace de troubleshooting asociado.
  • Enruta alertas al equipo que puede resolver el problema, no a una cola central.
  • Manten los mensajes de alerta concisos e incluye contexto como severidad, servicio e impacto.
  • Revisa las alertas ruidosas semanalmente y ajustalas o eliminalas.
  • Prueba los caminos de escalacion durante simulacros regulares.
  • Documenta los umbrales y la justificacion de los cambios.

Errores Comunes

  • Alertar sobre cada umbral metrico sin considerar el impacto al usuario.
  • Enviar todas las alertas a un unico canal sin enrutamiento.
  • Usar la misma severidad para todas las alertas.
  • No requerir reconocimiento ni rastrear tiempo de resolucion.
  • Ignorar alertas que suenan repetidamente sin accion.
  • Faltar caminos de escalacion para incidentes severos.
  • No revisar y retirar alertas obsoletas despues de cambios en el sistema.

Troubleshooting

  • No logs for a failing request: verify log shipping, retention, and that the request reached the service.
  • Alert fires but the service is healthy: tune thresholds and use multi-signal alerts.
  • Dashboard shows stale data: check refresh intervals, query range, and data source lag. Verify that the metric still exists.
  • High cardinality metrics explode costs: drop high-cardinality labels, aggregate before ingest, or use sampling.
  • Trace is incomplete across services: ensure all services propagate trace context. Instrument async and background jobs.

Notas de Producción

  • Despliega gradualmente usando canary o blue-green para detectar regresiones temprano.
  • Configura alertas para errores, latencia p99 y tasa de fallos antes de habilitar en producción.
  • Documenta el rollback en el runbook; prueba el procedimiento en staging al menos una vez por trimestre.
  • Revisa logs estructurados con correlation IDs para trazar requests end-to-end en incidentes.

Puntos Clave

  • Aplica plantilla de politica de monitoreo y alertas cuando necesites una solución práctica para tu caso de uso.
  • Monitorea el rendimiento después de implementar; mide latencia, errores y uso de recursos antes y después.
  • Revisa la sección de Troubleshooting ante errores comunes; la mayoría tienen causa raíz documentada con solución.
  • Mantén dependencias actualizadas y ejecuta tests en CI para prevenir regresiones en producción.

Errores Comunes en Producción

  • Dejar campos requeridos vacíos o usar respuestas vagas de una palabra.
  • Llenar el documento una vez y nunca actualizarlo cuando cambia el alcance o las decisiones.
  • Guardar el documento donde el equipo no lo busque durante incidentes o revisiones.
  • No asignar un responsable, fecha límite o cadencia de revisión.
  • Copiar texto base sin eliminar secciones que no aplican.
  • Saltar el control de versiones, lo que impide rollback y responsabilidad.
  • No vincular el documento con decisiones relacionadas o acciones de seguimiento.
  • Evitar revisiones trimestrales que retirarían secciones obsoletas o sin uso.

Preguntas frecuentes

Que es la fatiga de alertas y como la evitamos?
La fatiga de alertas ocurre cuando los ingenieros de guardia reciben demasiadas alertas de bajo valor. Se evita ajustando umbrales, agrupando alertas relacionadas, suprimiendo problemas conocidos y...
Debe cada alerta pagar a alguien?
No. Solo las alertas P1 y P2 deben pagar al ingeniero de guardia. Las alertas de menor severidad deben usar Slack, correo o notificaciones de dashboard para no interrumpir el tiempo de respuesta de...
Como sabemos si nuestros umbrales son correctos?
Rastrea la proporcion de alertas útiles respecto al total, mide el tiempo medio de reconocimiento y resolucion, y revisa las tasas de falsos positivos. Si una alerta suena frecuentemente sin generar...
Que es el alerting multi-ventana y por que deberia usarlo?
El alerting multi-ventana evalua una condicion sobre una ventana de tiempo corta y larga antes de dispararse. Por ejemplo, tasa de error above 5% por ambas ventanas de 1m y 5m. Esto previene que las...
Como manejamos las alertas durante mantenimiento planificado?
Usa supresion o silenciamiento de alertas en tu herramienta de alertas. En Alertmanager, crea una regla de silencio con horas de inicio/fin y matchers para los servicios afectados. Documenta la...
Deberiamos usar alerting basado en SLO en lugar de alerting basado en umbrales?
El alerting basado en SLO (tasa de quemado de presupuesto de error) es mas robusto para servicios orientados al usuario porque mide directamente el impacto al usuario. El alerting basado en umbrales...
Cuantas alertas deberia recibir un ingeniero de guardia por turno?
Un turno de guardia saludable tiene 0-2 paginas (P1/P2) y 5-15 alertas de Slack/correo (P3/P4). Si un ingeniero recibe mas de 5 paginas por turno, la politica de alertas necesita ajuste inmediato....
Deberiamos tener un NOC (L0) antes del equipo de ingenieria?
Para servicios 24/7 con alto volumen de alertas, si. Un NOC o equipo SRE de guardia (L0) filtra alertas repetidas, ejecuta runbooks conocidos y solo escala a ingenieria cuando se necesita experiencia...