Aller au contenu

Surveillance de site web : webhooks

Uptimia vérifie vos sites, vos certificats et vos parcours de paiement depuis l’extérieur de votre réseau et appelle votre point de terminaison à chaque panne confirmée. Votre propre code décide de la suite — ouvrir un ticket, redémarrer un service, alimenter un tableau de bord — et chaque vérification envoie le même format, si bien que vous écrivez le gestionnaire une seule fois.

une structure · les douze types · 2xx ou cinq relances

Pas un message, un contrat

Tous les autres canaux se terminent chez une personne, et les personnes sont des lecteurs indulgents. Le code ne l’est pas — c’est pourquoi l’essentiel n’est jamais la charge utile, mais les garanties qui la soutiennent.

Écrit pour un lecteur

« Quelque chose a cassé » — à vous de reconstituer le reste

Un message
lu une fois, puis fermé
lu, puis disparu
Rien sur quoi s’appuyer
aucune structure · aucune relance

La formulation peut dériver d’une version à l’autre, parce que le lecteur s’adapte. Dès qu’un logiciel en dépend, cette approximation devient un défaut dans votre intégration.

Écrit pour un système

Onze champs, cinq relances, une structure

Un POST
sondes de secours d’accord entre elles
2xx ou nous relançons
Votre code décide
ticket · robot · ligne

Un seul objet pour chaque type de vérification : un gestionnaire à écrire, une distinction sur deux champs. C’est relancé cinq fois avant d’être abandonné, donc des doublons sont possibles — documentés plutôt que découverts.

Gardez les canaux lus par des humains. Celui-ci est pour la partie qui ne devrait avoir besoin de personne. Un mercredi soir sur une API logistique :

L’alerte atterrit dans votre propre code

Une vérification échoue et Uptimia appelle votre point de terminaison avec les détails, déjà confirmés. Votre propre automatisation décide de la suite — ici, un ticket qui s’ouvre tout seul et se ferme au rétablissement.

02:17 Le POST arrive, déjà confirméops-bridge répond d’abord 200, puis travaille — le budget est pour la réponse POST · 84 ms
02:18 Le même événement arrive deux foisLa livraison se fait au moins une fois — le gestionnaire se base sur le début de l’incident relance · ignoré
02:18 Un ticket s’ouvre tout seulmonitor_unique_id choisit le runbook — aucun tri, aucun humain dans la boucle ticket · runbook
02:31 ✅ Le POST de rétablissement le refermeMême structure, statut up — incident_duration_seconds : 843 up · 14 min
14 mindown → up
Le rapport que personne n’a écritle 1er
Fin de mois : les chiffres de disponibilité sont partis vers trois clients directement depuis les tables internes d’ops-bridge. Chaque incident était déjà une ligne — rien n’a été exporté d’un tableau de bord.
843 secondes, enregistrées1 gestionnaire, chaque type de vérification0 alerte envoyée0 ligne de scraping
L’alerte est devenue une donnée — un message disparaît quand vous le fermez ; un événement que votre code a accepté est encore là un an plus tard. interrogeable, pas seulement lisible

Connecter un webhook en trois étapes

Aucune application à autoriser, aucune bibliothèque à installer — Uptimia a seulement besoin d’une URL à appeler et, si le point de terminaison est protégé, d’un en-tête qui l’y fait entrer.

Étape 130 secondes

Collez l’URL de votre point de terminaison

C’est toute l’inscription — une seule URL publique.

ops.caldmont.com/hooks Enregistrer l’intégration
https public · TLS vérifié · aucune plage privée
Étape 21 minute

Ajoutez vos en-têtes d’authentification

Facultatif — les en-têtes sont envoyés exactement tels que vous les écrivez, si bien qu’un simple jeton ouvre la porte à Uptimia.

En-têtes personnalisés
Authorization: Bearer …X-Source: uptimia
transmis sans modification · Content-Type ajouté pour vous
Étape 320 secondes

Associez-y vos sondes

Choisissez les vérifications qui doivent l’appeler, et une livraison test prouve le branchement avec le format réel.

Livraison test
monitor_status : test · severity : test · les mêmes onze champs
répondez avec n’importe quel 2xx et le branchement est prêt
Guide de configuration technique

Enregistrer un point de terminaison webhook

Le centre d’aide couvre la mise en œuvre : ajouter l’URL, écrire les en-têtes personnalisés, envoyer un POST test, et lire ce qu’une livraison échouée vous indique.

Chaque type de vérification. Une seule structure.

Un certificat qui expire, une tâche planifiée qui ne s’est jamais signalée et un serveur au-dessus de son seuil de CPU arrivent tous comme le même objet plat. Deux champs les distinguent.

"uptime"Vérifications HTTP de vos pages
"ssl"Expiration et validité du certificat
"domain"Dates d’enregistrement et de renouvellement
"server"CPU, mémoire, disque et charge
11 champs le même objet à chaque fois
"heartbeat"Tâches planifiées qui ont cessé de se signaler
"transaction"Parcours multi-étapes dans le navigateur
"dns"État des enregistrements et des serveurs de noms
"blacklist"Réputation du domaine et de l’IP
Rien n’est renommé sans que vous le sachiez — quatre autres types envoient le même objet, et une vague de pannes ajoute une clé de groupe à côté des champs existants. chaque vérification · un seul gestionnaire

Passerelles de chat, lignes de base de données, actions automatisées

Une fois qu’un incident est un objet que votre code a accepté, les usages utiles ne ressemblent plus à des alertes.

Le canal que nous ne parlons pas
Zulip, Rocket.Chat, un robot que vous avez écrit — tout ce qui tient sur une URL.
Reformulez le texte à votre guise
Orientez selon monitor_type ou le nom
Livrez au salon concerné
aucun SDK, aucune bibliothèque
Des enregistrements qui survivent à l’incident
Votre file de tickets, votre entrepôt de données, votre tableau de SLA.
Ouvre sur down, ferme sur up
La durée arrive déjà calculée
Jointure sur monitor_unique_id
votre schéma, pas le nôtre
Des actions plutôt que des messages
Annoter un graphique, vider un nœud, lever un drapeau.
La panne a d’abord été confirmée
Filtrez sur severity avant toute action destructive
L’action vous appartient, nous ne faisons que la signaler
délibérément à sens unique
Associez-le à un canal que quelqu’un lit SlackMS TeamsE-mailTelegramTwilio SMSPagerDutyDiscord

Les autres canaux informent une personne.Celui-ci informe votre code.

Toute la plateforme pendant l’essai — tous les types de vérification, plus de 171 points de contrôle, et chaque incident confirmé livré comme un objet qui vous appartient.

Démarrez votre essai gratuit de 30 jours
30 jours gratuits sans carte bancaire résiliable à tout moment

Les garanties de livraison, noir sur blanc

Personne ne peut écrire un gestionnaire fiable contre « nous vous enverrons une notification ». Voici les garanties réelles.

Au moins une fois, avec cinq relances

Dix secondes pour répondre, et tout 2xx compte comme accepté. Tout le reste est remis en file et relancé cinq fois, chaque attente une minute plus longue que la précédente, puis abandonné — répondez donc d’abord, et faites le travail ensuite.

Dix secondes pour répondreBUDGET Tout 2xx signifie acceptéRÉUSSITE Cinq relances, puis abandonnéBACKOFF

Un objet plat, onze clés

Pas d’imbrication, pas d’enveloppe, pas de schéma qui change selon le type de vérification. Deux champs les distinguent; les neuf autres ne changent jamais de sens — dont monitor_notes, la ligne de runbook laissée par la personne qui a configuré la sonde.

onze champs · une structure

Une vague de pannes ajoute une clé

Les sondes qui tombent en panne ensemble deviennent une seule requête avec un objet de groupe supplémentaire — membres, décompte, acquittement. Les gestionnaires qui l’ignorent continuent de fonctionner.

additif · jamais renommé

Vos en-têtes, transmis tels quels

Envoyés mot pour mot, si bien qu’un jeton porteur ou un secret partagé fonctionne. Il n’y a pas de signature du corps : vérifiez l’en-tête côté serveur, et gardez l’URL secrète.

jeton porteur · URL secrète

Là où ça refusera de publier

Uniquement http(s) public; le loopback et les plages privées sont rejetés. L’adresse est résolue une fois puis fixée, les redirections sont ignorées, TLS est vérifié.

pas de localhost · pas de rebinding

Aucun lien d’acquittement — volontairement

Les canaux que lit une personne portent un lien signé qui arrête l’échelle. Les systèmes reçoivent les faits et rien d’autre — un pipeline de journalisation qui peut faire taire une alerte finira par le faire.

Chaque champ, chaque événementENVOYÉ La capacité de le faire taireRETENU

Comment fonctionnent les webhooks de surveillance

Uptimia vérifie vos sites web depuis plus de 171 emplacements externes et, quand une vérification échoue, envoie une requête HTTP POST avec un corps JSON vers l’URL que vous avez enregistrée. Le même objet plat arrive pour chaque type de vérification — quelle sonde, ce qui s’est passé, quand et pendant combien de temps — si bien qu’un seul gestionnaire les couvre tous, et les livraisons échouées sont relancées.

« Chaque requête signifie que quelque chose est en panne »

Le bug que tout le monde écrit le premier jour

monitor_status: up
severity arrive vide
traité comme une panne
Quelqu’un a été alerté
parce que le site est revenu

Rétablissements, avertissements et tests partagent un même point de terminaison. monitor_status vaut down, up ou test; severity vaut critical ou trouble, et vide lors d’un rétablissement. Testez les deux.

Confirmé avant même d’exister

Confirmé avant que votre code n’en entende parler

171+ emplacements de surveillance
chargement de la page réelle
retesté d’abord
Une seule requête
par incident confirmé

Une automatisation n’est fiable que par son déclencheur. Une vérification web n’est jamais alertée sur l’opinion d’un seul point de contrôle — une panne suspectée est d’abord retestée depuis d’autres sondes.

Le corps

Onze champs, chaque événement

Ce qui est toujours présent, et ce qu’il contient.

Voir tous les canaux d’alerte
ChampExempleCe qu’il contient
id4172L’identifiant numérique de la sonde dans Uptimia
monitor_typeuptimeQuel type de vérification s’est déclenché
monitor_nameDispatch APILe nom que vous lui avez donné (le nom du site pour les vérifications de disponibilité)
monitor_unique_iddispatch-api-euVotre propre identifiant — la clé de jointure
monitor_statusdowndown, up ou test
severitycriticalcritical ou trouble — vide lors d’un rétablissement
incident_start_time2026-07-24T02:17:04+02:00ISO 8601, fuseau horaire du compte
incident_end_time2026-07-24T02:31:07+02:00Vide tant que l’incident est ouvert
incident_duration_seconds843Zéro jusqu’à la fermeture de l’incident
message*ALERT*: Project … is DOWNLe résumé d’une ligne que reçoivent les autres canaux
monitor_notesFailover: drain eu-west-2 firstLa note de la sonde — vide si personne n’en a écrit

FAQ sur les webhooks personnalisés

01Qu’envoyez-vous exactement ?+
Une seule requête HTTP POST avec Content-Type : application/json et un corps plat de onze champs — pas de chaîne de requête, pas d’encodage de formulaire, pas d’objet enveloppe. Chaque champ se trouve au premier niveau, et les mêmes onze arrivent pour chaque type de sonde et chaque statut, y compris le test.
02Comment authentifier la requête ?+
Avec des en-têtes personnalisés : tout ce que vous saisissez est envoyé mot pour mot, un par ligne au format Nom : valeur, si bien qu’un jeton porteur ou un secret partagé fonctionne. Il n’y a pas de signature HMAC sur le corps, donc traitez aussi l’URL comme un identifiant sensible — longue, aléatoire, et remplacée en cas de fuite.
03Que se passe-t-il si mon point de terminaison est lent ou hors service ?+
La requête dispose de dix secondes. Tout 2xx signifie accepté; tout le reste est remis en file avec un délai croissant et relancé cinq fois, puis abandonné. Répondez immédiatement 200 et faites la partie lente ensuite — le budget couvre la réponse, pas le travail.
04Vais-je un jour recevoir le même événement deux fois ?+
Oui, et vous devriez vous y préparer. La livraison se fait au moins une fois: un point de terminaison qui accepte un événement mais répond trop lentement voit quand même la relance. Dédupliquez sur la sonde plus incident_start_time — les deux restent identiques d’une relance à l’autre.
05Puis-je le pointer vers localhost ou une adresse interne ?+
Non. Seules les URL http et https publiques sont acceptées, et les plages loopback, privées et link-local sont refusées à l’enregistrement comme au moment de l’envoi — un webhook capable d’atteindre des services internes serait un outil de falsification de requêtes déguisé en badge de surveillance. Utilisez un tunnel pendant le développement.
06Suivez-vous les redirections ?+
Non. L’URL que vous enregistrez est celle qui reçoit le corps; une 301 ou une 302 compte comme une livraison échouée plutôt que comme un saut à suivre. Le nom d’hôte est résolu une fois et fixé pour l’appel, si bien qu’il ne peut pas être redirigé entre la vérification de sécurité et la requête.
07Que se passe-t-il quand plusieurs sondes tombent en panne en même temps ?+
Une seule requête pour tout le groupe plutôt qu’une par sonde, avec un objet group supplémentaire à côté des champs habituels : son identifiant, la liste des membres, combien sont encore en panne, et si quelqu’un a acquitté. Les onze champs d’origine décrivent la sonde d’ancrage du groupe — monitor_notes porte la note quand le groupe ne contient qu’une seule sonde, et reste vide quand il en résume plusieurs.
08Mon gestionnaire peut-il acquitter, ou répondre ?+
Non, et c’est voulu. Les liens d’acquittement ne vont qu’aux canaux que lit une personne; un système automatisé reçoit les faits, jamais la capacité de faire taire une escalade. La seule chose qu’Uptimia lit dans votre réponse est le code de statut.
09Que publie réellement « Envoyer un test » ?+
La structure réelle avec un contenu d’exemple : monitor_status et severity valent tous deux test, le nom affiche « Test monitor », et les trois champs liés à l’incident affichent « None » au lieu d’horodatages. Cela prouve que le point de terminaison répond — filtrez-le avant d’écrire dans une table dont vous dépendez.
10Combien de points de terminaison puis-je avoir, et est-ce inclus ?+
Ajoutez-en autant que nécessaire et associez chacun à des sondes différentes — un webhook se comporte comme n’importe quel autre contact. C’est l’un des canaux d’alerte intégrés, inclus dans tous les forfaits et pendant l’essai gratuit de 30 jours, et il fonctionne aux côtés des autres : une seule panne peut alerter une personne et mettre à jour un système à la même seconde.

Une URL, chaque incident confirmé

Enregistrez un point de terminaison, associez-le aux sondes qui comptent, et chaque panne confirmée arrive comme un objet que vos systèmes peuvent archiver et exploiter.

Aucun SDK Onze champs Essai gratuit de 30 jours Sans carte bancaire
Les webhooks personnalisés sont un canal d’alerte intégré — chaque type de vérification exécuté par Uptimia publie la même structure.