IMVP Méthode

Comment cette page est faite

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.

La question à laquelle elle répond

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.

Ce qui est sondé

Point de mesureCe que ça couvreSonde
PlateformeLe site public et les comptes (imvp.cloud). HTTP · edge + origine
Espaces clientsLe moteur qui sert les espaces des clients.HTTP
DocumentationLe centre de documentation.HTTP
SupportLe centre d'assistance.HTTP
Serveur principalL'hôte applicatif de production (Québec).Réseau (TCP)
Stockage QC / FR / IT / UKLe stockage objet de chaque région de résidence des données.HTTP
SupervisionCe 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.

« Mesuré », « partiel », « déduit »

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 :

Le trou le plus important est déclaré sur la page elle-même : l'envoi des codes de connexion par courriel n'est pas sondé depuis ici. Une panne de courriel n'apparaîtrait donc pas sur la ligne « vous connecter ». Nous préférons l'écrire que de laisser croire le contraire.

Le registre scellé

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.

Le témoin : c'est vous

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.

Ce que cela ne prouve pas

Le registre empêche la réécriture, pas le mensonge initial : il ne prouve pas qu'une mesure était juste au moment où nous l'avons écrite. Il n'ancre pas non plus la chaîne chez un tiers indépendant — un visiteur qui n'était jamais venu ne peut pas vérifier le passé, seulement ce qu'il voit à partir de maintenant.

Conservation

Disponibilité, latences, incidents

Pourquoi « temps serveur » et pas « temps de réponse » ?

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.

Le cas des services derrière un CDN

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 ».

L'écart n'était pas marginal. Médianes mesurées depuis notre sonde le 1er septembre 2026, sur la même page : ~126 ms publiés comme « temps serveur », pour ~27 ms de traitement réellement mesuré à l'origine — le reste étant l'Atlantique, deux fois. Sur une page dont tout l'argument est qu'on peut la vérifier, une étiquette qui ment est un défaut au même titre qu'un chiffre faux.

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.

Ce que nous n'avons pas retenu : demander l'information au CDN. Cloudflare ne nous renvoie ici que 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.

« Et depuis chez moi ? »

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.

Les notes d'incident

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.

Confidentialité

Les adresses IP des serveurs surveillés ne sont jamais exposées, ni dans l'API, ni dans le registre — y compris l'adresse d'origine composée pour passer derrière le CDN : seul le nom du CDN est publié. Les sondes sont faites côté serveur ; la page ne reçoit que des identifiants, des états et des temps mesurés. La page n'installe aucun traceur : le seul stockage local est votre témoin, et il ne nous est jamais transmis.

API publique

Tout est en lecture seule et lisible en cross-origin, sans compte ni jeton.