Un monitor HTTP verifică un site. Un heartbeat face invers: așteaptă ca un job (un backup nocturn, o sarcină programată) să raporteze la un interval stabilit și alertează când tăcerea durează prea mult. Se creează din Monitoare → Adaugă heartbeat.
nu a sosit niciun raport de succes în interval + grație de la ultimul (sau de la creare, înainte de primul raport);
un raport anunță eșec (cod de ieșire diferit de 0) — imediat;
un raport anunță pornirea și nu urmează încheierea în timpul grației.
Când următorul raport de succes sosește, heartbeat-ul revine și se trimite o alertă de revenire. Alertele pe Slack nu conțin adresa de ping.
Pagina heartbeat-ului (vizibilă doar administratorilor) arată o adresă de ping secretă, de forma /uptime/ping/<token>, și un exemplu curl. Schema este cea din healthchecks.io (cu sau fără „/” la final):
adresa simplă sau
/0— succes;/start— jobul a pornit (se măsoară și durata);/failsau/<cod>cu cod diferit de 0 — eșec;corpul cererii (GET, POST sau HEAD) este păstrat ca jurnal — ultimii 10 KB.
Exemplu pentru scriptul de backup restic: se schimbă o singură linie, cea cu adresa de ping (HC=), iar scriptul trimite $HC/start la început și, la sfârșit, codul de ieșire al lui restic cu jurnalul în corp: restic backup … > /tmp/backup.log 2>&1; rc=$?, apoi curl -fsS -m 10 --retry 3 --data-binary @/tmp/backup.log "$HC/$rc". Codul se salvează imediat după restic: $? scris direct în comanda curl dintr-un pipe ar raporta codul comenzii anterioare, deci succes și când backup-ul a eșuat.
⚠️ Token secret
La creare poți alege o sarcină programată din lista sarcinilor VolunHub. Atunci nu mai este nevoie de nicio adresă: pornirea, succesul și eșecul sarcinii se înregistrează automat (o sarcină care se termină normal este un succes; o excepție este un eșec, cu mesajul ei ca jurnal). Efectul apare în cel mult un minut.
Un heartbeat nou este ascuns de pagina publică de stare (o indisponibilitate „Backup” publică arată o slăbiciune), iar administratorii îl văd marcat Ascuns public. Bifează „Arată pe pagina publică de stare” ca să-l faci public; publicul vede doar numele și starea, niciodată adresa, sarcina sau jurnalul.
ℹ️ Limita monitorizării din interior
/healthz/?scheduler=1, care răspunde 503 dacă ultima verificare de monitoare a fost acum mai mult de 5 minute.