Añade un heartbeat de Verifagent a un script Python
Llama a Verifagent al final del script, después del trabajo que debe tener éxito. Si el proceso falla antes, el heartbeat ausente es la alerta.
Antes de empezar
Crea un monitor con la frecuencia real de tu workflow y copia su URL desde el panel. Su token es secreto: no lo publiques.
Configuración
Copia la URL del monitor
Crea un monitor para el calendario de este script. Guarda la URL en una variable de entorno, no en el control de versiones.
https://verifagent.com/api/ping/your-ping-tokenVersión con requests
Instala requests si hace falta (pip install requests). Lanza excepción en caso de fallo para que un ping erróneo falle el proceso tras un trabajo correcto — llama al ping solo después del bloque de trabajo.
import os
import requests
PING_URL = os.environ["VERIFAGENT_URL"] # URL completa del monitor
def main() -> None:
# 1) Trabajo real primero
do_work()
# 2) Heartbeat solo tras el éxito
response = requests.get(PING_URL, timeout=15)
response.raise_for_status()
print(response.json()) # {"ok": true}
def do_work() -> None:
# Sustituye por tu job
...
if __name__ == "__main__":
try:
main()
except Exception:
# Sin ping en caso de fallo — Verifagent detectará el silencio
raiseVersión con urllib (sin dependencias)
Mismo orden: trabajo primero, luego GET. urllib está en la biblioteca estándar.
import json
import os
import urllib.request
PING_URL = os.environ["VERIFAGENT_URL"]
def ping() -> None:
with urllib.request.urlopen(PING_URL, timeout=15) as resp:
body = json.load(resp)
if resp.status != 200 or body.get("ok") is not True:
raise RuntimeError(f"Respuesta de ping inesperada: {body!r}")
def main() -> None:
do_work()
ping()
def do_work() -> None:
...
if __name__ == "__main__":
main()Programa y verifica
Exporta VERIFAGENT_URL, ejecuta el script una vez, espera {"ok": true}. Conéctalo a cron o systemd con el mismo entorno.
{"ok":true}Rutas disponibles
La URL base basta para un heartbeat. Las variantes enriquecen el historial si tu plataforma tiene varias ramas.
GET https://YOUR_PING_URLPOST https://YOUR_PING_URL/successPOST https://YOUR_PING_URL/fail?msg=ErrorVerificar
Una ejecución correcta cambia el monitor a Up. Fuerza una excepción antes de ping() y confirma que Verifagent no recibe nada en esa ejecución.
200 {"ok":true}. El monitor pasa de Pending a Up.