automationssrefeature

SRE Automatizado: El Motor de Automatizaciones

Define reglas para gestionar automáticamente procesos descontrolados. El nuevo motor de automatizaciones de OmniMon monitorea umbrales de CPU y RAM con acciones configurables.

Gestión Proactiva del Sistema

El monitoreo es reactivo por naturaleza — ves un problema, luego lo solucionas. El nuevo Motor de Automatizaciones de OmniMon invierte este modelo: define reglas una vez y deja que el sistema se encargue del resto.

Cómo Funcionan las Reglas

Cada regla de automatización tiene cinco parámetros:

ParámetroDescripciónEjemplo
Patrón de ProcesoNombre o subcadena a buscarchrome, node, python
MétricaQué monitorearcpu o ram
UmbralValor de activación80% CPU, 1024 MB RAM
DuraciónCuánto tiempo debe persistir la violación30 segundos
AcciónQué hacer cuando se activekill o alert

Seguimiento Basado en Duración

OmniMon no se activa por picos momentáneos. El motor rastrea cuánto tiempo un proceso ha excedido su umbral usando un HashMap<(rule_id, pid), Instant>. Las acciones solo se disparan después de que la violación haya persistido durante la duración configurada.

Esto previene falsos positivos de:

  • Picos breves de CPU durante compilación
  • Picos momentáneos de asignación de memoria
  • Ráfagas transitorias de inicio de procesos

Ejemplos de Reglas

Terminar pestañas de Chrome que consumen demasiada RAM:

Patrón: chrome
Métrica: RAM
Umbral: 2048 MB
Duración: 60 segundos
Acción: Kill

Alertar cuando Node.js excede el umbral de CPU:

Patrón: node
Métrica: CPU
Umbral: 80%
Duración: 30 segundos
Acción: Alert

Garantías de Seguridad

El motor de automatizaciones hereda el sistema de seguridad de procesos de OmniMon:

  • Procesos protegidos (kernel, launchd, smss.exe, etc.) no pueden ser terminados por reglas de automatización
  • Todas las acciones de kill pasan por kill_process_safe() que aplica listas de bloqueo específicas por SO
  • Las notificaciones nativas de escritorio te informan de cada acción tomada

Notificaciones

Cuando se activa una regla:

Acción de kill:

“Se terminó Chrome (PID 1234) por exceder 2048.0 MB de RAM”

Acción de alerta:

“El proceso node (PID 5678) excedió 80.0% de CPU”

Ciclo de Evaluación

El motor se ejecuta como un worker thread en segundo plano, evaluando todas las reglas cada 5 segundos:

Cada 5 segundos:
  1. Leer reglas actuales (RwLock thread-safe)
  2. Obtener estado cacheado del sistema
  3. Para cada regla:
     a. Buscar nombres de procesos contra el patrón
     b. Verificar métrica vs umbral
     c. Rastrear duración de la violación
     d. Ejecutar acción si se sostiene
  4. Enviar notificaciones
  5. Reiniciar rastreador de violaciones después de la acción

Creación de Reglas

Abre OmniMon → Navega al panel de Automatizaciones → Click en “Nueva Regla” → Configura los parámetros → Guardar. Las reglas toman efecto inmediatamente.