Guide Python

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.

Module à utiliser : requests / urllib. Placez-le après la dernière action utile du chemin de succès.

Installation

1

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-token
2

Version 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 raise
3

Version 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()
4

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}
Ne pingez jamais en tête de main(). Alignez la période attendue sur la fréquence d’exécution ; la grâce doit couvrir le runtime max plus le jitter du planificateur.

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_PING
POST https://VOTRE_URL_DE_PING/success
POST https://VOTRE_URL_DE_PING/fail?msg=Erreur

Vé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.

Réponse attendue : 200 {"ok":true}. Le monitor passe de Pending à Up.