Monitores Heartbeat (tareas cron)

Qué es un monitor Heartbeat

Un monitor Heartbeat es un interruptor de hombre muerto pasivo para trabajo que debe ejecutarse según una programación: tareas cron, copias de seguridad nocturnas, pipelines ETL, workers de colas y tareas de fondo similares. En lugar de que LoadFocus llame a tu servicio, tu tarea llama a LoadFocus cada vez que termina con éxito. Si el ping esperado no llega a tiempo, el monitor pasa a DOWN y se disparan las alertas.

A diferencia de las verificaciones activas, un monitor Heartbeat no sondea nada y no tiene regiones. Simplemente espera a que tu tarea se reporte. Eso lo hace ideal para comprobar que el trabajo programado realmente se ejecutó, y no solo que un endpoint es alcanzable.

Cómo funciona

  1. Creas un monitor Heartbeat y defines cada cuánto debe reportarse tu tarea, más un período de gracia.
  2. LoadFocus te da una URL de ping única.
  3. Tu tarea hace ping a esa URL en cada ejecución correcta.
  4. Si un ping llega dentro de la ventana esperada, el monitor se mantiene en UP.
  5. Si no llega ningún ping dentro del intervalo + período de gracia, el monitor pasa a DOWN y se disparan las alertas. LoadFocus comprueba los pings perdidos una vez por minuto, así que la alerta puede tardar hasta aproximadamente un minuto más que intervalo + gracia.
  6. El siguiente ping correcto recupera el monitor a UP.

Un monitor nuevo no se marca como DOWN hasta que ha recibido su primer ping, así que ejecuta tu tarea una vez (o llama a la URL a mano) después de guardar.

Crear un monitor Heartbeat

  1. Abre la página de nueva verificación de API.
  2. Elige el tipo Heartbeat.
  3. Elige la Programación:
    • Intervalo fijo: define el Intervalo de ping esperado (segundos), desde 60 segundos hasta 30 días (por ejemplo, 3600 para una tarea cada hora).
    • Programación cron: introduce una Expresión cron (UTC) (por ejemplo, 0 9 * * 1-5 para los días laborables a las 09:00 UTC).
  4. Define un Período de gracia (segundos), el margen extra que permites antes de considerar la tarea tardía (por ejemplo, 300).
  5. Elige tus canales de alerta y guarda el monitor.
  6. Copia la URL de ping que LoadFocus muestra tras guardar. Tiene el aspecto https://apimonitor.loadfocus.com/ping/<token>.

Hacer ping a la URL desde tu tarea

Haz que tu tarea llame a la URL de ping cuando termine con éxito. Sirve cualquier método HTTP, así que GET, POST o HEAD valen por igual.

Lo más sencillo es añadir una llamada curl al final de tu script o de tu entrada cron:

curl -fsS https://apimonitor.loadfocus.com/ping/<your-token>

La opción -f hace que curl falle ante errores HTTP, -s lo mantiene en silencio y -S sigue mostrando los errores reales. Ejecútalo solo si hay éxito, por ejemplo como última línea de la tarea, para que una ejecución fallida no haga ping y el monitor detecte correctamente el fallo.

La propia URL es el secreto: cualquiera que la tenga puede hacer ping al monitor, así que no la subas a repositorios públicos.

Alertas y recuperación

  • Cuando transcurre intervalo + gracia sin ping, el monitor pasa a DOWN y se avisa a tus canales de alerta.
  • Cuando llega el siguiente ping, el monitor se recupera a UP y se envía una notificación de recuperación.

Para saber adónde van las alertas, consulta Canales de alerta. Para verificaciones activas basadas en regiones, consulta en su lugar Cómo Crear una Nueva Verificación de API.