Ajouter un heartbeat Verifagent à un script Python
Appelez Verifagent à la fin du script, après le travail qui doit réussir. Si le process plante plus tôt, l’absence de heartbeat est l’alerte.
Avant de commencer
Créez un monitor avec la fréquence réelle de votre workflow, puis copiez son URL depuis le dashboard. Son token est secret : ne le publiez pas.
Installation
Copiez l’URL du monitor
Créez un monitor pour la cadence de ce script. Gardez l’URL dans une variable d’environnement, pas dans le dépôt.
https://verifagent.com/api/ping/your-ping-tokenVersion avec requests
Installez requests si besoin (pip install requests). Levez une erreur en cas d’échec HTTP : n’appelez le ping qu’après le bloc de travail.
import os
import requests
PING_URL = os.environ["VERIFAGENT_URL"] # URL complète du monitor
def main() -> None:
# 1) Vrai travail d’abord
do_work()
# 2) Heartbeat uniquement après succès
response = requests.get(PING_URL, timeout=15)
response.raise_for_status()
print(response.json()) # {"ok": true}
def do_work() -> None:
# Remplacez par votre job
...
if __name__ == "__main__":
try:
main()
except Exception:
# Pas de ping en cas d’échec : Verifagent verra le silence
raiseVersion avec urllib (sans dépendance)
Même ordre : travail d’abord, puis GET. urllib est dans la bibliothèque standard.
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"Réponse de ping inattendue : {body!r}")
def main() -> None:
do_work()
ping()
def do_work() -> None:
...
if __name__ == "__main__":
main()Planifiez et vérifiez
Exportez VERIFAGENT_URL, lancez le script une fois, attendez {"ok": true}. Branchez-le ensuite à cron ou systemd avec le même environnement.
{"ok":true}Routes disponibles
L’URL de base suffit pour un heartbeat. Les variantes enrichissent l’historique si votre plateforme gère plusieurs branches.
GET https://VOTRE_URL_DE_PINGPOST https://VOTRE_URL_DE_PING/successPOST https://VOTRE_URL_DE_PING/fail?msg=ErreurVérification
Un run réussi passe le monitor à Up. Forcez une exception avant ping() et confirmez que Verifagent ne reçoit rien pour cette exécution.
200 {"ok":true}. Le monitor passe de Pending à Up.