Une page de statut demande qu'on la croie. Celle-ci essaie de ne pas avoir à le demander : elle répond d'abord à la question que vous vous posez vraiment, elle déclare ce qu'elle ne mesure pas, et elle publie un registre scellé que votre navigateur vérifie lui-même. L'infrastructure qui l'héberge est indépendante de celle qu'elle observe : si la plateforme tombe, cette page reste debout.
Presque personne ne vient ici pour apprendre qu'un service est en panne : quand ça ne marche pas, vous le savez déjà. On vient pour trancher une seule chose : « est-ce vous, ou est-ce moi ? » — et, en cas d'incident, pour savoir s'il faut attendre ou contourner. C'est pour ça que la page s'ouvre sur une phrase datée, et non sur un mur de pastilles.
| Point de mesure | Ce que ça couvre | Sonde |
|---|---|---|
| Plateforme | Le site public et les comptes (imvp.cloud). | HTTP · edge + origine |
| Espaces clients | Le moteur qui sert les espaces des clients. | HTTP |
| Documentation | Le centre de documentation. | HTTP |
| Support | Le centre d'assistance. | HTTP |
| Serveur principal | L'hôte applicatif de production (Québec). | Réseau (TCP) |
| Stockage QC / FR / IT / UK | Le stockage objet de chaque région de résidence des données. | HTTP |
| Supervision | Ce service de statut lui-même. | Réseau (TCP) |
La Plateforme est sondée deux fois par salve : à travers le CDN qui la précède, et directement à l'origine — pourquoi.
Une salve = ces points sondés d'un coup, toutes les 30 secondes, en continu, depuis un serveur dédié à Falkenstein (Allemagne) — y compris la nuit, y compris quand personne ne regarde la page.
La liste « ce que vous pouvez faire » ne parle pas de composants mais de vos gestes. Traduire des sondes en gestes suppose un raccourci — alors nous affichons le raccourci plutôt que de le cacher :
Chaque salve est écrite dans un registre en chaîne. La ligne n contient le texte exact des mesures de la salve, et son empreinte vaut :
empreinte(n) = SHA-256( empreinte(n−1) ‖ texte(n) )
Chaque mesure publiée y figure, la réponse « via CDN » comprise. Le texte haché est exactement la chaîne de caractères que l'API vous sert — pas un résumé, pas une re-sérialisation. Votre navigateur peut donc rehacher ce qu'il a reçu et retrouver, chiffre pour chiffre, l'empreinte publiée. C'est ce que fait la page à chaque chargement, sur les 24 dernières salves.
Modifier après coup une mesure déjà publiée change son empreinte, donc celle de toutes les salves suivantes, donc la valeur affichée aujourd'hui. Le registre ne permet pas la réécriture silencieuse.
Une chaîne signée par celui qui la publie ne prouve rien à elle seule — nous pourrions tout recalculer. Ce qui la rend contraignante, c'est qu'un tiers ait déjà vu un maillon. Ce tiers, c'est votre navigateur : il garde en local (jamais chez nous) l'empreinte qu'il a vue, plus les sceaux quotidiens. À chaque visite il nous redemande ces valeurs et les compare. Si elles ont bougé, la page passe au rouge et le dit.
Vous pouvez copier ces empreintes (bouton Mon témoin) et les garder ailleurs : elles ne dépendent ni d'un compte, ni de nous.
Notre sonde est en Allemagne, une partie des serveurs est au Québec. Un « temps de réponse » brut afficherait ~340 ms — dont l'essentiel est la traversée de l'Atlantique et la poignée de main TLS, pas la lenteur du serveur. Nous mesurons donc sur connexion déjà chaude et retranchons un aller-retour réseau nu, ce qui isole le temps réellement passé côté serveur (quelques millisecondes). Le trajet réseau est conservé dans nos données mais retiré des affichages publics : il décrit une distance, pas un service.
Cette soustraction n'est honnête qu'à une condition : que l'aller-retour retranché soit bien celui que la réponse a parcouru. Pour imvp.cloud, qui passe par un CDN (Cloudflare), il ne l'était pas. L'aller-retour nu s'arrête au point de présence le plus proche de la sonde — une dizaine de millisecondes — alors que la réponse, elle, doit encore franchir point de présence → origine au Québec, puis revenir. Nous retranchions 10 ms d'un trajet qui en coûtait cent. Ce qui restait n'était pas du traitement : c'était du transit, publié sous une étiquette qui disait « traitement ».
Une précision, tant qu'à être précis : sur des requêtes rapprochées, quand l'application est déjà chaude, ce traitement retombe autour de 6 ms. Notre sonde frappe toutes les 30 secondes et paie donc à chaque fois un peu de mise en route. C'est ce chiffre-là — le moins flatteur des deux — que nous publions.
Un service déclaré « derrière un CDN » est donc désormais mesuré deux fois dans la même salve, et publie deux chiffres qui ne se mélangent plus :
Conséquence à connaître en lisant l'historique : le temps serveur publié pour la plateforme a chuté d'un coup le jour de cette correction — d'environ 120 ms à quelques dizaines de millisecondes. Le serveur n'est pas devenu plus rapide : c'est la mesure qui a cessé d'être fausse.
Et si la sonde d'origine se tait un jour — pare-feu, changement d'adresse — le temps serveur s'affiche « — » plutôt que de retomber sur l'ancien calcul. Nous préférons un chiffre manquant à un chiffre faux ; c'est exactement le défaut que cette section corrige. La disponibilité, elle, continue d'être jugée sur le chemin du CDN : c'est celui que vous empruntez, et une sonde d'origine ne doit jamais pouvoir déclarer — ni masquer — une panne.
cf-cache-status: DYNAMIC — il dit que rien n'est mis en
cache, jamais combien de temps l'origine a mis à répondre. Il n'y avait rien à lire :
il fallait aller mesurer.
Notre mesure ne dit rien de votre lien. Le bouton en bas de la réponse fait charger par votre navigateur une image minuscule sur la plateforme, puis sur cette page-ci, et chronomètre les deux. Rien ne nous est envoyé : le résultat reste dans votre onglet. Si les deux sont lentes, c'est votre lien ; si seule la plateforme l'est, la piste est de notre côté. Cette mesure n'est jamais déclenchée automatiquement.
Quand une interruption se termine, une note publique est rédigée automatiquement à partir d'une fiche de faits chiffrée en catégories et en nombres (durée, composants publics, familles d'erreurs). Aucune adresse, aucun journal brut, aucune donnée client ne quitte nos machines. La note est validée avant publication ; si elle échoue à la validation, un texte type prend sa place.
/api/status — état courant, disponibilité par fenêtre, tête du registre./api/ledger?tail=N — les N dernières lignes du registre, texte haché inclus./api/ledger/at?height=H — l'empreinte à la hauteur H (vérification d'un témoin)./api/ledger/seals — les sceaux quotidiens./api/history, /api/kpis, /api/incidents,
/api/pulse, /api/badge.svg — les mesures et le badge embarquable.Tout est en lecture seule et lisible en cross-origin, sans compte ni jeton.