État global
Lecture de l'état en cours…
Incidents en cours
En attente de la réponse du service de statut.
Maintenances programmées
En attente de la réponse du service de statut.
Composants
Pour chaque composant : son état, ce qui le mesure, et sa disponibilité sur 24 heures, 7, 30 et 90 jours. La barre montre les 90 derniers jours, un segment par jour ; un jour gris n'a pas de mesure et n'est jamais compté comme disponible.
En attente de la réponse du service de statut.
Fournisseurs
État lu sur la page de statut officielle de chaque fournisseur.
Un incident chez un fournisseur ne signifie pas forcément un impact sur OncoIDE : l'état des services OncoIDE ci-dessus reste celui que nous mesurons.
En attente de la réponse du service de statut.
Incidents des 90 derniers jours
Incidents résolus et publiés ; les incidents en cours sont affichés plus haut. L'historique complet, avec les post-mortems, est sur la page Historique des incidents.
En attente de la réponse du service de statut.
Comment ces informations sont produites
Deux sondes, à deux endroits
Une sonde contrôle les composants d'OncoIDE toutes les cinq minutes, depuis Paris, où tournent nos fonctions serveur. Une veille indépendante tourne elle aussi toutes les cinq minutes, depuis notre base de données, à Francfort : elle interroge l'application et l'API. Si notre hébergeur web tombe, c'est elle qui enregistre la panne.
Si la base de données elle-même tombe, plus rien ne s'écrit : la réponse publique vieillit et, au bout de vingt minutes, l'état global devient « État inconnu ». Un composant sans contrôle depuis vingt minutes est lui aussi « inconnu ». Cette page ne reste jamais verte par inertie.
Ce que chaque contrôle vérifie
Pas seulement qu'une adresse répond : que ce qu'elle sert est utilisable.
| Composant | Ce qui est vérifié | « Dégradé » au-delà de |
|---|---|---|
| Application OncoIDE | la page se sert, contient la racine de l'application, et son script principal se sert aussi (un déploiement cassé sert une page sans script) | 4 s |
| Site public | la page d'accueil se sert et contient « OncoIDE » | 4 s |
| API | une autre invocation de fonction, par le routage public, répond « ok » | 3 s |
| Base de données | un aller-retour avec la base | 1,5 s |
| Authentification | le point de santé du service d'authentification | 2 s |
| Fonctions de gestion des comptes | une requête préalable (CORS) vers une fonction, avec l'en-tête de version posé par le déploiement | 3 s |
| Courriels | l'API de Resend répond et nos domaines d'envoi sont vérifiés ; si notre clé n'a pas ce droit, l'état vient de la page de statut de Resend | 4 s |
| Données publiques HAS | l'API de data.gouv.fr rend le jeu de données de la HAS | 8 s |
| Parcours de connexion, contenu, quiz | parcours synthétique, tous les quarts d'heure : un compte de surveillance se connecte, obtient son accès, reçoit le contenu, y trouve la fiche cherchée (« neutropénie ») et des questions de quiz | 4 à 8 s |
| Fournisseurs | l'indicateur de leur page de statut officielle (Vercel, Supabase, Resend, Gandi, Sentry, Upstash) | — |
Le parcours synthétique n'est actif que si le compte de surveillance existe. Sans lui, la sonde écrit « non mesuré », et cette page affiche pour ces trois composants un état déduit de leurs dépendances, en le disant. Planning, espace cadre, idées et qualité sont toujours déduits : la page l'écrit.
Éviter les fausses alertes : la fenêtre de confirmation
Une requête en échec est rejouée deux secondes plus tard ; seul un double échec s'écrit « panne ». Ensuite, l'état affiché attend deux contrôles consécutifs en panne avant de dire « panne » : un contrôle isolé s'affiche « dégradé ».
Composants mesurés, composants déduits
- Mesuré : une sonde le contrôle directement, ou un parcours synthétique l'exerce. Sa disponibilité est calculée.
- Déduit : son état est celui de ses dépendances, et la page le dit. Aucune disponibilité n'est calculée pour lui.
- Fournisseur : l'état publié par le fournisseur sur sa propre page. Un incident signalé par un fournisseur ne change pas l'état global d'OncoIDE tant que nos propres mesures sont bonnes. Si nos mesures tombent aussi, nous publions un incident d'origine « fournisseur », nommé : l'impact est dit, la cause aussi.
- Incident publié : il ne peut pas masquer une panne mesurée ; l'état affiché est le pire des deux.
Comment la disponibilité est calculée
Le calcul est fait dans la base de données, pas dans cette page : la page publique, l'API et notre console d'exploitation lisent le même résultat.
- Minute observée : le dernier contrôle qui la précède date de moins de 15 minutes. Elle prend son résultat.
- Minute indisponible : ce résultat est « panne », ou la minute tombe dans un incident publié d'impact « majeur » sur ce composant.
- Minute de maintenance : elle tombe dans une maintenance annoncée au moins 48 heures ouvrées avant son début (la règle du contrat de licence ; comptées du lundi au vendredi, heure de Paris) ; elle sort du calcul. Une maintenance annoncée plus tard compte comme une indisponibilité.
- Disponibilité = 1 − minutes indisponibles ÷ (minutes observées − minutes de maintenance), tronquée à deux décimales : jamais arrondie vers le haut, une seule minute perdue interdit d'afficher 100 %.
- Fenêtres : 24 heures glissantes, à la minute ; 7, 30 et 90 jours civils, heure de Paris.
- Pas de chiffre quand la surveillance a commencé après le début de la fenêtre (« période incomplète ») ou quand moins de 90 % de la fenêtre a été observée (« couverture insuffisante »). La page écrit alors : « Données de disponibilité insuffisantes pour calculer une période complète. »
Ces chiffres sont des mesures, pas un engagement. L'engagement contractuel est résumé sur la page Engagement de disponibilité.
Pour les systèmes
Les mêmes informations, lisibles par une supervision ou un lecteur de flux :
| Adresse | Ce qu'elle rend |
|---|---|
https://app.oncoide.fr/api/status | le statut complet en JSON : état global, composants, incidents en cours et récents, maintenances, date de génération |
https://app.oncoide.fr/api/status.atom | flux Atom des incidents et des maintenances |
https://app.oncoide.fr/api/health | santé en direct : fonction, base, authentification (réponse 200, ou 503) |
https://app.oncoide.fr/api/health/<composant> | santé d'un composant : application, site, base_de_donnees, authentification, fonctions, donnees_publiques |
Aucune de ces réponses ne contient de détail d'erreur, d'adresse interne, de clé ou d'identifiant de compte. Elles dépendent de la même surveillance que cette page : tant que l'état ci-dessus indique que la surveillance publique n'est pas en service, elles ne répondent pas.
Être prévenu d'un incident
Planifié L'abonnement aux incidents par courriel n'existe pas encore. En attendant, le flux Atom peut être suivi dans un lecteur de flux ou par un outil de supervision.