Ajouter un heartbeat Verifagent à un script Node.js
Le fetch natif suffit. Pingez à la fin d’un run réussi pour qu’un crash ou une exception n’envoie jamais de heartbeat.
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 job. Stockez l’URL dans VERIFAGENT_URL (ou passez-la en argument).
https://verifagent.com/api/ping/your-ping-tokenPing uniquement après succès
Nécessite Node 18+. Attendez le vrai travail, puis fetch. Les réponses HTTP non OK lèvent une erreur visible dans les logs.
// Node.js 18+
const PING_URL = process.env.VERIFAGENT_URL;
if (!PING_URL) {
throw new Error("Missing VERIFAGENT_URL");
}
async function doWork() {
// Remplacez par votre job
}
async function ping() {
const response = await fetch(PING_URL, { method: "GET" });
if (!response.ok) {
throw new Error(`Ping failed: HTTP ${response.status}`);
}
const body = await response.json();
console.log(body); // { ok: true }
}
async function main() {
await doWork();
await ping();
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
// Pas de ping en cas d’échec
});Variante POST optionnelle
GET suffit pour un heartbeat. POST fonctionne de la même façon si votre outil n’autorise que POST.
const response = await fetch(PING_URL, { method: "POST" });
if (!response.ok) throw new Error(`Ping failed: HTTP ${response.status}`);Exécutez une fois
VERIFAGENT_URL='…' node job.mjs : attendez { ok: true } et le statut Up dans le dashboard.
{"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
Run réussi → Up. Throw avant ping() → aucun signal ; Verifagent ouvre un incident après période + grâce.
200 {"ok":true}. Le monitor passe de Pending à Up.