Guide Node.js

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.

Module à utiliser : fetch (Node 18+). 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 job. Stockez l’URL dans VERIFAGENT_URL (ou passez-la en argument).

https://verifagent.com/api/ping/your-ping-token
2

Ping 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 });
3

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}`);
4

Exécutez une fois

VERIFAGENT_URL='…' node job.mjs : attendez { ok: true } et le statut Up dans le dashboard.

{"ok":true}
Gardez ping() après await doWork(). Alignez la période sur le planificateur ; prévoyez une grâce au-dessus du cold-start et de la latence réseau (serverless).

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

Run réussi → Up. Throw avant ping() → aucun signal ; Verifagent ouvre un incident après période + grâce.

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