Aggiungi un heartbeat Verifagent a uno script Python
Chiama Verifagent alla fine dello script, dopo il lavoro che deve riuscire. Se il processo crasha prima, l'heartbeat mancante è l'avviso.
Prima di iniziare
Crea un monitor con la frequenza reale del workflow, poi copia l'URL dalla dashboard. Il token è segreto: non pubblicarlo.
Configurazione
Copia l'URL del monitor
Crea un monitor per la pianificazione di questo script. Conserva l'URL in una variabile d'ambiente, non nel codice sorgente.
https://verifagent.com/api/ping/your-ping-tokenVersione con requests
Installa requests se necessario (pip install requests). Solleva errore in caso di fallimento così un ping errato fallisce il processo dopo il lavoro riuscito — chiama il ping solo dopo il blocco di lavoro.
import os
import requests
PING_URL = os.environ["VERIFAGENT_URL"] # URL completo del monitor
def main() -> None:
# 1) Lavoro reale prima
do_work()
# 2) Heartbeat solo dopo il successo
response = requests.get(PING_URL, timeout=15)
response.raise_for_status()
print(response.json()) # {"ok": true}
def do_work() -> None:
# Sostituisci con il tuo job
...
if __name__ == "__main__":
try:
main()
except Exception:
# Nessun ping in caso di fallimento — Verifagent rileverà il silenzio
raiseVersione con urllib (nessuna dipendenza)
Stesso ordine: lavoro prima, poi GET. urllib è nella libreria 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"Risposta ping inattesa: {body!r}")
def main() -> None:
do_work()
ping()
def do_work() -> None:
...
if __name__ == "__main__":
main()Pianifica e verifica
Esporta VERIFAGENT_URL, esegui lo script una volta, attendi {"ok": true}. Collegalo a cron o systemd con lo stesso ambiente.
{"ok":true}Route disponibili
L'URL base basta per un heartbeat. Le varianti arricchiscono la cronologia se la piattaforma ha più rami.
GET https://YOUR_PING_URLPOST https://YOUR_PING_URL/successPOST https://YOUR_PING_URL/fail?msg=ErrorVerifica
Un'esecuzione riuscita porta il monitor a Up. Forza un'eccezione prima di ping() e conferma che Verifagent non riceve nulla per quella esecuzione.
200 {"ok":true}. Il monitor passa da In attesa a Up.