Aller au contenu

HTTP/HTTPS

Formulaire de création d'un monitor HTTP

Le monitor HTTP/HTTPS vérifie la disponibilité d’un service web en envoyant une requête HTTP à l’URL spécifiée et en analysant la réponse. C’est le type de monitor le plus utilisé.

ParamètreDescriptionValeur par défaut
URLAdresse complète du service (https://...)
MéthodeGET, POST, PUT, PATCH, DELETE, HEAD, OPTIONSGET
IntervalleFréquence de vérificationle plus court permis par le plan
Code(s) attendu(s)Code(s) HTTP considéré(s) comme succès, ex. 200 ou une plage 200-299200-299
RégionsRégions de vérificationune, la moins chère du plan
Essais (retries)Échecs consécutifs tolérés avant de marquer le monitor down1 (soit 2 échecs)

Chaque vérification dispose d’un budget fixe de 5 secondes — connexion, réponse et, en HTTPS, la lecture du certificat s’y déroulent. Il n’y a pas de réglage de timeout par monitor : une cible qui n’a pas répondu en 5 s compte comme un échec.

Un point d’accès protégé a son propre bloc : Basic auth, jeton Bearer, clé d’API (en-tête ou paramètre d’URL), cookie de session, OAuth2 client credentials, ou certificat client (mTLS). Chaque secret est chiffré au repos et masqué à la lecture — voir Authentification.

Ajoutez des en-têtes HTTP à chaque requête de vérification, en complément (ou à la place) du bloc d’authentification :

X-Tenant: acme
Content-Type: application/json
Accept: application/json

Pour les méthodes POST ou PUT, définissez un body JSON envoyé à chaque vérification :

{
"health": true
}

Cas d’usage : vérifier qu’un endpoint d’API répond correctement à une requête POST (ex : endpoint de health check qui attend un body spécifique).

Vérification du contenu : mot-clé ou requête JSON

Section intitulée « Vérification du contenu : mot-clé ou requête JSON »

En plus du code HTTP, un monitor HTTP peut valider le contenu de la réponse. Dans la modale de création (étape 1, juste sous l’URL) et dans le panneau d’édition, le sélecteur Vérification du contenu propose trois modes :

ModeCe qu’il fait
Code HTTP seulementPar défaut — seuls les codes HTTP acceptés sont vérifiés.
Mot-cléLe check échoue si le texte n’est pas trouvé dans le body (ou, en mode inversé, s’il est trouvé).
Requête JSONLa réponse est parsée en JSON, un chemin est résolu puis comparé à une valeur attendue.

Mot-clé et requête JSON sont exclusifs : un monitor utilise l’un ou l’autre. Le bouton Tester évalue la vérification du contenu avec le code HTTP, la méthode, les headers et les identifiants : le résultat affiché est exactement celui que produiront les vrais checks — un échec de contenu indique la raison (ex. Keyword 'operational' not found in response body).

ChampDescription
Mot-cléTexte recherché dans le body brut de la réponse — HTML ou JSON. Sensible à la casse.
Doit être absentInverse la vérification : elle échoue si le mot-clé est trouvé (page de maintenance servie en 200).

Exemples d’utilisation :

  • Vérifier que votre page d’accueil contient Bienvenue (et pas une page d’erreur avec un 200).
  • Vérifier qu’une API retourne "status":"operational".
  • Détecter les pages de maintenance servies avec un code 200.
ChampDescription
Chemin JSONNotation pointée depuis la racine du document : component.status, data.items.0.name. Le préfixe $. est accepté. $ seul désigne le body brut.
Opérateur==, !=, contains, >, <, >=, <=
Valeur attendueComparée à la valeur résolue sous forme de chaînes (nombres et booléens sont convertis : true, 42). Les opérateurs numériques parsent les deux côtés.

Le check échoue si le body n’est pas du JSON valide, si le chemin ne résout rien, ou si la comparaison est fausse. $ saute le parsing JSON et compare tout le body (sans espaces de bord) — pratique pour les endpoints de santé en texte brut qui répondent OK ou pong.

Exemple — un endpoint de composant Statuspage comme https://public-cloud.status-ovhcloud.com/api/v2/components/8x32jhcpqq1m.json retourne :

{ "page": { "...": "..." }, "component": { "name": "GRA1", "status": "operational" } }
Chemin JSONOpérateurValeur attendueRésultat
component.status==operational✅ réussi
component.status!=operational❌ échoue dès que le composant est dégradé/down
$contains"status":"operational"✅ réussi (body brut)

Pour une cible https://, OKStatus lit le certificat à chaque vérification et enregistre le nombre de jours restants avant expiration.

  • Un certificat expiré ou invalide fait échouer la vérification.
  • Les alertes d’expiration sont disponibles à partir du plan Pro, à 30, 14, 7, 3 et 1 jour avant l’expiration du certificat — une alerte par seuil, pas une par vérification. L’expiration du nom de domaine est surveillée de la même façon, à 60, 30, 14 et 7 jours.
  • Ce sont deux types d’alerte distincts : un canal peut recevoir les pannes sans les alertes de certificat (ou l’inverse).

Cochez Ignorer la validation du certificat TLS sur le monitor pour accepter un certificat auto-signé ou expiré — pour un environnement de recette que vous assumez.

Un monitor suit les redirections par défaut, jusqu’à 5 sauts, et chaque saut est revérifié avec les mêmes règles de sécurité que l’URL d’origine. Le code classifié est celui de la fin de la chaîne.

Désactivez Suivre les redirections pour vérifier l’URL exactement telle que saisie. Le monitor demande alors comment traiter un 3xx absent de vos codes acceptés :

Réglage pour un 3xxRésultat
Dégradé (par défaut)Le serveur a répondu — c’est un écart de configuration, pas une panne. Orange, personne n’est réveillé.
DownStrict : toute redirection inattendue est traitée comme une panne.

Les 4xx, 5xx et les cibles injoignables sont toujours down une fois la fenêtre de réessai épuisée, quel que soit ce réglage. Si vous voulez que la redirection compte comme un succès, ajoutez plutôt son code (ex. 301) aux codes acceptés — le bouton Tester le propose justement quand il en rencontre une.

Agentfr-dc3 GET /health · headers · body · basic auth 200 · 184 ms · TLS 61 days Your serviceapi.example.com ASSERTIONS · all must pass Status code in 200-299 (or your list) Keyword present / absent in the body Answered before the timeout Latency ≥ 2 s → shown as degraded 3xx outside accepted codes → degraded TLS expiry & domain expiry → their own alerts RECORDED PER CHECK status · http code · latency msregion · timestamp · ssl days lefterror (timeout, DNS, TLS, refused…) Redirects are followed by default (max 5 hops); each hop is SSRF-checked.

Chaque check HTTP enregistre :

MétriqueDescription
Statutup, degraded ou down
Code HTTPCode de réponse (200, 404, 503…)
LatenceTemps de réponse total en ms
RégionRégion d’où le check a été effectué
HorodatageDate et heure exactes du check

Ces métriques alimentent les graphiques du dashboard, les rapports PDF mensuels et les calculs d’uptime affichés sur vos pages de statut.