Superviser un système : lois continues et détection d'anomalies
Ce que ce chapitre apporte 6 points
- Lire les métriques de charge et de mémoire d'un serveur, et dire laquelle signale une difficulté.
- Reconnaître les lois continues usuelles : normale, log-normale, exponentielle, Weibull.
- Vérifier graphiquement et par un test qu'une série suit une loi donnée.
- Détecter des anomalies par z-score, écart interquartile et statistiques robustes, et savoir où ces méthodes cèdent.
- Choisir un seuil d'alerte à partir de la cadence de fausses alertes acceptée, et chiffrer cette cadence.
- Lire un taux de panne, et décider si un remplacement préventif a un sens.
Une semaine de mesures relevées chaque minute sur un service en ligne : temps de réponse, charge processeur, taux d'erreurs, consommation électrique des baies. Des milliers de lignes, dont l'immense majorité ne dit rien. L'enjeu n'est pas d'en calculer la moyenne, c'est de déclencher la bonne alerte au bon moment. Ce chapitre suit ce trajet : comprendre ce que mesurent ces métriques, reconnaître la loi que suit chacune, la normale ou la log-normale, et poser des seuils qui ne noient pas l'équipe sous les fausses alertes. Il finit par le temps qui passe entre deux alertes, et par l'âge des composants : la loi exponentielle et la loi de Weibull.
La loi normale, ses trois repères et la loi exponentielle sont posés dans Les lois discrètes et le risque, qui les établit et les calcule. Celui-ci les reprend pour décider : à partir de quel écart une mesure inquiète, combien de fausses alertes un seuil coûte, quand remplacer un composant. Qui a lu le chapitre de Mathématiques peut parcourir la densité et les trois repères en diagonale, et reprendre à la loi log-normale.
Ce que mesure la supervision
Superviser, c'est observer un système en fonctionnement pour décider s'il faut intervenir. Encore faut-il savoir ce que les chiffres décrivent.
Processus et ordonnancement
Un processus est un programme en cours d'exécution ; l'ordonnanceur du système d'exploitation répartit le temps de processeur entre les processus prêts, par tranches de quelques millisecondes. Le chapitre Processus et ordonnancement en donne le fonctionnement ; il suffit ici de savoir ce que les métriques en disent.
La charge processeur est la proportion de temps pendant laquelle le processeur n'était pas inactif, sur l'intervalle de mesure. À 100 % il travaille sans interruption : ce n'est pas une panne, c'est un processeur utilisé. Le signal d'alerte est ailleurs : dans la file d'attente des processus prêts, qui dit combien de tâches attendent leur tour.
Cette file se compare au nombre de cœurs. La charge moyenne affichée par uptime ou top (load average) compte les processus en cours d'exécution et ceux qui attendent un cœur, et sous Linux aussi ceux bloqués sur une lecture disque : une charge de 4 sur une machine à huit cœurs ne fait attendre personne, la même charge sur un seul cœur en fait attendre trois. De même, le pourcentage de CPU est tantôt rapporté à un cœur, un processus pouvant alors afficher 400 %, tantôt à l'ensemble de la machine.
Trente relevés de charge, une mesure par minute, sur un serveur dont la charge moyenne vaut environ 50 % : l'histogramme dit ce que la moyenne tait. Deux bosses, l'une près de zéro et l'autre près de cent, signalent un système qui alterne l'inactivité et la saturation, et non un système à mi-charge.
Un processeur à 50 % en moyenne sur une minute peut avoir tourné à mi-charge tout du long, ou avoir passé trente secondes à 100 % et trente à 0 %. Pour un utilisateur, ces deux situations n'ont rien à voir : la seconde donne des à-coups perceptibles. Plus l'intervalle de mesure est long, plus il en cache. La minute est un compromis : elle cache encore des à-coups de quelques secondes, mais une moyenne horaire cacherait des incidents entiers, et une mesure à la seconde multiplierait par soixante le volume à stocker et, à seuil égal, le nombre de fausses alertes.
Mémoire
Quand la mémoire vive (RAM) manque, le système écrit sur disque, dans le swap, des pages de mémoire peu utilisées récemment ; le chapitre Mémoire virtuelle et pagination en détaille le mécanisme. Un accès disque étant de plusieurs centaines de fois (SSD) à cent mille fois (disque mécanique) plus lent qu'un accès RAM, un système qui swappe activement s'effondre en performance.
Une mémoire occupée à 95 % en comptant le cache est normale : le système garde en cache tout ce qu'il peut, et le libère à la demande. Les outils récents ne comptent d'ailleurs plus ce cache comme « utilisé » : la colonne used de free vaut le total moins le disponible, si bien qu'un « utilisé à 95 % » y signale, lui, une vraie pénurie. Ce qui compte, c'est la mémoire disponible (MemAvailable sous Linux), et surtout l'activité de swap. Un serveur en swap soutenu est en train de mourir, même si sa charge CPU paraît saine.
Une série temporelle
Chaque métrique relevée à intervalle régulier forme une série temporelle. Elle se distingue d'une série statistique ordinaire sur deux points : les observations sont ordonnées, et elles ne sont pas indépendantes, la charge de cette minute ressemble à celle de la précédente.
La conséquence, immédiate. Tous les indicateurs de Statistique descriptive restent calculables, mais ils ignorent le temps. Une moyenne journalière écrase la différence entre le jour et la nuit ; un histogramme de la charge sur 24 heures mélange deux régimes distincts. Il faut donc tracer la série dans le temps avant de la résumer : c'est le même réflexe que le nuage de points, avec le temps en abscisse.
Variables aléatoires continues
Une température, une durée, un débit peuvent prendre n'importe quelle valeur d'un intervalle. On ne peut plus lister les comme pour une loi discrète du chapitre sur les probabilités : elles valent toutes zéro. Le chapitre sur le risque a fait ce passage avec la loi normale ; l'essentiel en est rappelé ici, parce que tout le réglage des seuils en dépend.
Une variable aléatoire continue est décrite par sa densité de probabilité , une fonction positive d'aire totale 1. La probabilité se lit comme une aire, c'est-à-dire une intégrale au sens du chapitre sur l'intégration :
La fonction de répartition est l'aire sous la densité à gauche de .
Renversée, elle donne les quantiles : le quantile d'ordre est la valeur telle que . La médiane est le quantile d'ordre 0,5, le 95ᵉ centile celui d'ordre 0,95.
C'est le geste de Statistique descriptive sur les fréquences cumulées, entrer par l'ordonnée et redescendre sur l'abscisse : est la version théorique de la fréquence cumulée d'une série, et c'est justement la fréquence cumulée des données que le test de Kolmogorov-Smirnov, plus bas, compare à .
C'est le contresens le plus fréquent du passage au continu. La valeur n'est pas la probabilité d'obtenir : cette probabilité vaut zéro, puisque c'est l'aire d'une bande de largeur nulle, . Le nombre infini de valeurs n'y suffit pas : la loi de Poisson en a une infinité, et chacune garde une probabilité positive.
Conséquence qui déroute : peut dépasser 1 sans rien casser. Une loi uniforme sur a une densité constante égale à 10, et c'est parfaitement correct : ce qui doit valoir 1, c'est l'aire sous la courbe, pas sa hauteur (). Une densité a d'ailleurs une unité, l'inverse de celle de : une densité de 3,2 par centimètre vaut 0,32 par millimètre.
Ce qui a un sens, c'est toujours une probabilité d'intervalle : , l'aire entre et . D'où l'usage de la fonction de répartition , qui donne directement , et le calcul .
Deux lois pour les mesures : normale et log-normale
Une mesure relevée en continu, une charge, une température, un temps de réponse, suit le plus souvent l'une de ces deux lois. La première porte la règle des trois sigmas ; la seconde est celle où cette règle trompe.
Loi normale
La courbe en cloche, symétrique autour de . Elle apparaît dès qu'une grandeur est la somme de nombreux petits effets indépendants, c'est le théorème central limite. Un bruit de mesure, les écarts d'une température de salle machine autour de son cycle jour/nuit : normal.
La règle des trois sigmas.
- 68 % des valeurs tombent dans ;
- 95 % dans ;
- 99,7 % dans .
C'est de là que sortent tous les seuils « à 3 sigmas » de la supervision, et c'est valable uniquement si la série est normale.
entre 30 et 50, l'aire vaut 0,9545. Déplacer l'écart-type : elle ne bouge pas.
Se poser alors la question du praticien, avec une mesure par minute et un seuil à deux écarts-types : 4,55 % des mesures tombent dehors, soit environ soixante-six alertes par jour pour un serveur parfaitement sain. Refaire le compte à trois écarts-types, et la raison du choix apparaît.
Le second curseur change l'écart-type sans toucher à la moyenne. Le dessin ne bouge pas : ce sont les graduations qui s'écartent ou se resserrent, et l'aire teintée reste la même. Un seuil exprimé en écarts-types laisse donc passer la même proportion quelle que soit la dispersion ; ce que la dispersion décide, c'est l'endroit où ce seuil tombe en pourcentage de charge : 50 % pour un écart-type de 5, 60 % pour un écart-type de 10.
Ce qu'il faut regarder n'est pas le sommet, c'est la vitesse à laquelle la courbe retombe de part et d'autre. Au bord de la zone teintée, elle est déjà très basse ; un peu plus loin, elle est collée à l'axe. C'est cette chute rapide qui donne son sens à un seuil : au-delà, il ne reste presque rien à laisser passer.
Loi log-normale
est log-normale si est normale. Densité asymétrique, étalée à droite, définie sur les valeurs positives. Elle apparaît quand une grandeur est le produit de nombreux facteurs : temps de réponse, taille de fichiers, durée d'une requête qui traverse plusieurs couches. La raison tient en une propriété du logarithme vue dans Étude de fonction, : le logarithme d'un produit de nombreux facteurs est une somme de nombreux termes, donc une cloche, pour la même raison que la loi normale plus haut.
Les deux paramètres et d'une loi log-normale sont la moyenne et l'écart-type de , pas de . Le logarithme étant croissant, les quantiles passent d'une échelle à l'autre : la médiane de vaut , son 95ᵉ centile . La moyenne, elle, ne passe pas : elle vaut , plus que la médiane.
Sur la figure plus bas, et donnent une médiane de 36,6 ms, une moyenne de 48 ms et un 95ᵉ centile de 126 ms. Pour ne pas confondre les deux échelles, la moyenne et l'écart-type des millisecondes s'écrivent ci-dessous et .
Les deux formes, l'une sous l'autre. Sur la première, regarder la symétrie : le côté gauche est l'image exacte du côté droit. C'est pour cela que mode, médiane et moyenne y tombent au même point. La règle des trois sigmas, elle, ne vient pas de la symétrie mais de la forme précise de la cloche : une loi symétrique comme la loi uniforme ne laisse rien au-delà de deux écarts-types.
La seconde est la loi des temps de réponse, des tailles de fichiers, des durées de traitement. Elle est nulle en dessous de zéro, ce qu'une durée exige, et sa queue s'étire vers la droite sans fin. Deux choses à y regarder : l'écart entre les trois repères, qui mesure l'asymétrie, et le fait que la courbe reste nettement au-dessus de l'axe loin à droite, là où une cloche s'y colle. Sur cette loi, une valeur supérieure au triple de la médiane se produit encore 7 % du temps, soit une minute sur quatorze. C'est ce que veut dire « queue épaisse », et c'est ce qui va mettre en défaut le seuil à trois sigmas.
Sur une loi normale, il reste 0,13 % des valeurs au-delà du seul seuil haut , la moitié des 0,27 % qui sortent par l'un ou l'autre côté. Sur la log-normale de la figure, il en reste 1,85 % au-delà de ce seuil haut, quatorze fois plus. Sur un relevé à la minute, le seuil haut promettait deux fausses alertes par jour ; il en produit vingt-sept.
La raison se voit en repassant au logarithme, la seule échelle où cette loi est une cloche. La figure a pour moyenne ms et pour écart-type ms : le seuil tombe donc à 175 ms. Or , et sur l'échelle du logarithme la loi est centrée en avec . Le seuil n'est donc qu'à écarts-types du centre. Un seuil annoncé « à trois sigmas » n'en vaut que deux, et une cloche laisse 1,85 % de ses valeurs au-delà de 2,09 écarts-types. Le compte est bon, et le « trois » de l'énoncé était une illusion d'échelle : atteindre les 0,13 % promis demanderait un seuil à 347 ms, le double.
Le seuil bas est absurde pour la même raison, en pire : vaut ici , un nombre négatif, là où aucune durée n'existe. Une chute anormale du temps de réponse, signe d'un service qui renvoie des erreurs sans rien traiter, ne serait donc jamais signalée.
La parade tient en une ligne : sur une grandeur positive et étirée, travailler sur le logarithme, l'échelle où la loi redevient une cloche et où le seuil à trois sigmas retrouve ses 0,13 %. Un critère robuste comme l'écart interquartile n'en dispense pas : il résiste aux valeurs extrêmes, mais la part de valeurs ordinaires qu'il signale dépend de la loi. Appliqué directement aux millisecondes de cette figure, il en signalerait 5,8 %, toutes au-dessus de la limite haute, trois fois plus que le seuil qu'on vient de condamner ; appliqué à leur logarithme, 0,7 %, la moitié au-dessus de la limite haute et l'autre moitié sous la limite basse, qui repère alors les chutes anormales. C'est l'erreur la plus courante de la supervision : appliquer une règle normale à une grandeur qui ne l'est pas.
1.Une latence a pour moyenne 48 ms et pour écart-type 42 ms. Un seuil haut est posé à , soit 174 ms. Comparée à celle qu'annonce la règle des trois sigmas, sa cadence de fausses alertes est :
2.Avant d'appliquer une règle à trois sigmas, quelle vérification s'impose ?
Vérifier la loi d'une série
Supposer une loi sans la vérifier est la fausse piste la plus coûteuse : tout ce qui suit en dépend. La vérification se fait en trois temps, du moins au plus formel.
L'histogramme avec la densité théorique superposée : c'est grossier mais cela élimine les erreurs grossières, qui sont les plus fréquentes. Sans rien tracer, un premier contrôle compte la part des mesures à moins d'un, deux et trois écarts-types de la moyenne, à comparer aux 68, 95 et 99,7 % de la cloche.
Le diagramme quantile-quantile (QQ-plot) : on trace les quantiles observés contre les quantiles théoriques. Si la loi est la bonne, les points s'alignent sur une droite. Quand les quantiles théoriques sont ceux de la loi normale centrée réduite, comme dans le code plus bas, cette droite a une pente proche de et une ordonnée à l'origine proche de : c'est le trait rouge que trace Python, une droite ajustée sur les points comme la droite des moindres carrés du chapitre précédent. Selon une convention courante, le -ème point a pour abscisse le quantile de la cloche d'ordre et pour ordonnée la -ème plus petite valeur observée : sur cinq valeurs, les abscisses sont , , , et . Les écarts aux extrémités se lisent immédiatement, et ce sont justement les extrémités qui décident des seuils d'alerte.
Le test de Kolmogorov-Smirnov : il mesure l'écart maximal entre la fonction de répartition empirique et la théorique, et en tire une -valeur. Une -valeur inférieure à 0,05 conduit à rejeter l'hypothèse que la série suit la loi testée.
La -valeur est la probabilité d'observer un écart au moins aussi grand que celui mesuré, en supposant que la série suit vraiment la loi testée.
Une -valeur de 0,03 se lit donc : « si la loi était exacte, un écart de cette ampleur ou plus n'arriverait que trois fois sur cent ». Comme c'est peu, on préfère renoncer à l'hypothèse plutôt que d'admettre avoir observé un cas rare.
Une -valeur de 0,03 ne dit pas qu'il y a 3 % de chances que la loi soit la bonne, ni 97 % qu'elle soit fausse. Ce serait , alors que le test calcule . Les deux ne sont pas égales, et Probabilités, sur le conditionnement et la formule de Bayes, a montré à quel point elles peuvent différer.
Une -valeur au-dessus de 0,05 ne prouve pas davantage que la loi est bonne : elle dit seulement que ces données-là ne suffisent pas à la rejeter. Absence de preuve n'est pas preuve d'absence.
- Si on estime et sur les données mêmes, la -valeur du test est faussée dans le sens optimiste : le test accepte trop facilement. La correction s'appelle le test de Lilliefors.
- Sur un grand échantillon, le test rejette tout. Avec 10 000 points, le moindre écart devient significatif, or aucune série réelle ne suit exactement une loi théorique. Une -valeur minuscule sur 10 000 mesures ne dit pas que le modèle est inutilisable, elle dit que l'échantillon est grand.
- Le test suppose des mesures indépendantes. Sur une série temporelle, où chaque minute ressemble à la précédente, il compte plus de mesures qu'il n'y a de données vraiment distinctes : sa -valeur sort trop petite, et il rejette une loi pourtant juste. Les séries du code plus bas n'y échappent que parce que leur bruit est tiré indépendamment d'une minute à l'autre.
Le code ci-dessous fabrique une journée de supervision (1 440 mesures à la minute) et confronte deux métriques à la loi normale.
Les deux séries brutes sont rejetées, mais pas pour la même raison. L'asymétrie (skewness) le montre : franchement positive pour la latence, dont la queue s'étire à droite ; nulle pour la consommation, qui est pourtant rejetée elle aussi. Ce qui l'éloigne de la cloche, c'est le cycle jour/nuit. Cette oscillation de 0,6 kW est bien plus forte que le bruit de mesure. Elle étale les valeurs entre le creux et le sommet, et une sinusoïde passe plus de temps près de ses extrêmes qu'au milieu. La série mélange donc les heures chargées et les heures creuses, c'est-à-dire deux régimes. Une fois le cycle retiré, le résidu passe le test sans difficulté, comme le logarithme de la latence. Le code estime et sur les données mêmes, ce que l'encadré précédent signalait : les rejets n'en sont que plus nets, puisque ce biais pousse à accepter ; les « compatible » se lisent avec cette réserve. Voici les séries brutes en images.
Le QQ-plot de la latence s'écarte nettement de la droite dans le haut : les grandes valeurs observées dépassent de loin celles que prévoit la loi normale, et c'est exactement la zone qui décide des alertes. Celui de la consommation s'en écarte de l'autre manière, aux deux bouts, en forme de S : ses extrêmes restent en deçà de ceux d'une cloche, parce que le cycle borne la série.
1.Un test de Kolmogorov-Smirnov donne pour une série confrontée à la loi normale. Que signifie ce nombre ?
2.Sur le QQ-plot d'une série de latences contre la loi normale, les points du haut montent nettement au-dessus de la droite. Qu'annonce ce dessin pour un seuil à trois sigmas ?
Détecter une anomalie
Une anomalie est une observation qui s'écarte assez du comportement habituel pour mériter un regard. Ce chapitre s'en tient à des méthodes fondées sur des statistiques classiques (pas d'apprentissage automatique), et c'est amplement suffisant.
Le z-score
En clair : retrancher la moyenne pour savoir de combien la valeur s'écarte du comportement habituel, puis diviser par l'écart-type pour exprimer cet écart dans l'unité de la série elle-même, sa dispersion ordinaire. Un de 2 se lit « deux fois la dispersion habituelle », et cela veut dire la même chose sur des degrés et sur des millisecondes. On signale généralement .
Ce seuil de 3 n'est pas une constante : il se justifie par la part de mesures ordinaires qu'il laisse passer.
entre -3 et 3, l'aire vaut 0,9973. Déplacer l'écart-type : elle ne bouge pas.
Ce qu'il faut regarder ici, ce n'est pas la cloche, ce sont les deux minces bandes qu'elle laisse en dehors de la zone teintée. La série est normale et rien ne s'y passe : ces bandes ne contiennent donc que des mesures ordinaires, et toute alerte qu'elles déclenchent est fausse. Déplacer le seuil, c'est déplacer la frontière de cette zone, donc changer l'épaisseur des bandes.
Un seuil ne se choisit pas en pourcentage mais en fausses alertes par jour. À 3σ sur une mesure par minute, en comptant les sorties des deux côtés comme le fait la règle : fausses alertes quotidiennes. À 4σ : , soit une tous les onze jours. C'est ce nombre-là qu'on présente à l'équipe d'exploitation, pas le sigma.
Deux défauts, et ils vont ensemble. D'abord il suppose la normalité : sur la log-normale de la figure, le seuil « moyenne + 3σ » laisse passer près de quatorze fois le nombre de valeurs ordinaires annoncé, et le seuil bas tombe sous zéro.
Ensuite, moyenne et écart-type sont calculés en incluant les anomalies. Une valeur extrême gonfle , donc réduit son propre z-score : c'est l'effet de masquage.
Il va jusqu'à plafonner le score. Doubler la taille du pic double son écart à la moyenne, qui est le numérateur, mais double aussi l'écart-type qu'il fabrique presque à lui seul, qui est le dénominateur. Le rapport des deux ne bouge presque plus, 2,2656 pour un pic à 60 et 2,2678 pour un pic à 600. Il ne dépend donc plus de la valeur du pic, seulement du nombre de mesures :
En clair : sur mesures, une valeur isolée ne peut pas obtenir un score plus grand que celui-là, si énorme soit-elle. Ce plafond suppose l'écart-type calculé en divisant par , comme dans l'exemple et le code plus bas ; en divisant par , comme la statistique descriptive le fait pour décrire une série, il vaut , un peu plus haut. Ce plafond reste sous le seuil de 3 tant que la série compte moins de onze mesures : en dessous, aucun pic ne peut déclencher l'alerte, quelle que soit son ampleur.
L'écart interquartile
On signale les valeurs hors de , la règle de la boîte à moustaches posée dans Statistique descriptive. Quartiles et IQR sont robustes, mais jusqu'à un certain point. Tant que moins d'un quart des valeurs sont anormales, reste parmi les valeurs ordinaires et les extrêmes ne le déplacent pas. Au-delà, il cède : sur douze relevés de charge , la moitié haute est , donc , , et la limite haute monte à 111,75 : aucun des trois pics n'est signalé. La médiane, elle, tient jusqu'à la moitié de valeurs anormales.
La méthode s'applique sans connaître la loi, mais son taux de fausses alertes en dépend : 0,7 % des valeurs ordinaires sur une cloche, beaucoup plus sur une série étirée à droite. Sur un temps de réponse, on l'applique donc au logarithme.
Le z-score robuste
On remplace moyenne et écart-type par leurs équivalents robustes. La médiane remplace la moyenne. L'écart absolu médian remplace l'écart-type : c'est la médiane des distances à la médiane,
et le score devient
En clair, c'est le même geste que le z-score, avec deux remplacements. L'écart au centre se compte à partir de la médiane et non de la moyenne. La dispersion ordinaire se lit sur le MAD, c'est-à-dire l'écart typique des autres points à cette médiane. Le facteur ramène l'échelle du MAD à celle d'un écart-type sur une loi normale, de sorte que le seuil de 3 garde le même sens qu'avec le z-score classique. Il vient de la cloche elle-même : son troisième quartile se trouve à au-dessus de la moyenne, puisque , si bien que le MAD d'une cloche vaut et son écart interquartile le double, . La limite tombe donc à : c'est de là que viennent les 0,7 % de la règle de Tukey.
Tout l'intérêt tient au dénominateur : une valeur extrême peut multiplier l'écart-type, elle ne déplace pas une médiane, qui ne dépend que d'un rang. Le seuil ne se laisse donc pas fabriquer par ce qu'il doit détecter, tant que les valeurs anormales restent minoritaires : sur les douze relevés ci-dessus, la médiane vaut 41,5 et le MAD 1,5, et le z robuste signale les trois pics, au-delà de 24. Une limite, en revanche : le MAD vaut zéro dès que plus de la moitié des relevés sont égaux, ce qui arrive sur un compteur d'erreurs nul la plupart du temps, et le score devient infini à la moindre erreur. Sur ce genre de métrique, la loi de Poisson du chapitre sur le risque convient mieux.
Les trois méthodes sont en place ; les voici sur sept valeurs. Charge relevée sur sept minutes : et un pic à . Personne n'hésiterait à qualifier ce pic d'anomalie.
Par le z-score. La somme vaut , donc la moyenne . La somme des carrés des écarts à 18 vaut , et l'écart-type , en divisant par comme le fait le code plus bas.
Ce choix suit la règle de Statistique à deux variables et estimation : sept relevés ne sont pas « la série » qu'on décrit, ce sont un échantillon à partir duquel on estime le comportement normal du capteur. C'est le cas de toute supervision, qui juge l'avenir d'après un historique. Sur des milliers de relevés, diviser par ou par ne change d'ailleurs plus rien.
Le pic a tiré la moyenne vers le haut, et surtout il pèse des de la somme des carrés des écarts. Il fournit donc 86 % de la somme dont l'écart-type est tiré : celui contre lequel on va le juger est presque entièrement son œuvre. Son z-score vaut donc
soit en dessous du seuil de 3. L'alerte ne part pas. Et elle ne partirait pas davantage avec un pic à 6 000 : sur sept mesures, le plafond calculé plus haut vaut , et le pic à 60 y est déjà.
Par le z-score robuste. La médiane vaut , et les écarts absolus à la médiane sont , de médiane . Le pic ne peut pas influencer une médiane, puisqu'il n'en déplace pas le rang central. D'où
soit onze fois le seuil. L'alerte part sans ambiguïté.
Par l'écart interquartile. , , donc et la limite haute vaut . Le pic est signalé lui aussi.
Deux méthodes sur trois voient une anomalie que la troisième déclare normale, sur les mêmes sept nombres. La différence ne tient pas au seuil choisi mais à ce qu'on met dans le dénominateur.
Le pourcentage du maximum
« Alerte au-delà de 90 % du maximum observé » : simple, immédiat, et sans aucune propriété. Le maximum est la statistique la moins robuste qui soit, il est déterminé par une seule valeur, souvent celle dont on doute le plus. À citer, à ne pas utiliser seul.
Les trois méthodes sur une même série
Le code suivant applique le z-score, l'écart interquartile et le z robuste à cinq cents relevés de charge, dont trois incidents, et affiche les seuils qu'ils posent.
Ce que la comparaison montre. Les trois incidents sont réels et massifs, et les trois méthodes les trouvent tous ; pourtant les seuils diffèrent de six points de charge, pour deux raisons distinctes. Le z-score classique place sa limite le plus haut, vers 69 %, parce que les incidents ont eux-mêmes gonflé l'écart-type, de 9,0 à 10,1 : sans eux, il la poserait vers 65,5 %. Le z robuste, qui les ignore, tombe à 66 %, presque au même endroit. L'écart interquartile descend à 63 % pour une autre raison, qui ne doit rien aux incidents : sur une cloche, sa limite se trouve à 2,7 écarts-types de la moyenne, et non à 3. Les deux méthodes robustes paient leurs limites plus serrées de quelques signalements sur des mesures ordinaires : quatre pour l'écart interquartile, deux au-dessus de 63 % et deux sous sa limite basse, vers 15 % ; deux pour le z robuste, un de chaque côté, au-dessus de 66 % et sous 11 %.
Il n'y a pas de méthode gagnante dans l'absolu : il y a un arbitrage entre incidents manqués et fausses alertes, et c'est à l'exploitant de le trancher. Sur cinq cents points, trois incidents déplacent le seuil du z-score de trois points et demi sans masquer aucun d'eux ; sur une série courte, ou avec des incidents plus nombreux, le masquage vu plus haut ferait basculer la comparaison.
1.Sur douze relevés, , la règle de l'écart interquartile ne signale rien. Pourquoi ?
2.Sur sept relevés, un pic à 60 au milieu de valeurs proches de 11 obtient un z-score de 2,27. Que devient ce score si le pic monte à 600 ?
3.Pourquoi le z-score robuste emploie-t-il la médiane et le MAD ?
Régler un seuil d'alerte
Trois méthodes, trois seuils différents sur la même série. Reste à décider lequel poser, et ce choix-là n'est plus statistique.
Un seuil produit deux types d'erreurs : les faux négatifs (incidents manqués) et les faux positifs (fausses alertes). En ne touchant qu'au seuil, impossible de les baisser tous les deux : le durcir réduit les fausses alertes et augmente les incidents manqués. Les leviers présentés plus bas y parviennent, pour les incidents qui durent ou qui touchent plusieurs métriques, parce qu'ils changent autre chose que le seuil.
Les quatre fausses alertes quotidiennes calculées plus haut valent pour une métrique sur un serveur. Avec quatre métriques et vingt serveurs, on atteint plus de 300 alertes par jour, dont presque aucune ne correspond à un incident.
C'est le résultat de Bayes, posé dans Probabilités, sous sa forme opérationnelle : une équipe noyée sous les fausses alertes finit par toutes les ignorer, y compris la vraie. La figure qui l'accompagne permet de le voir : descendre la rareté à quelques dixièmes de pour-cent et le taux de fausses alertes à 0,3 %, celui d'un seuil à trois sigmas, et regarder ce que devient la valeur prédictive d'un excellent détecteur.
Une précaution vient avant tout réglage : le seuil se calcule sur un historique sain. Un seuil recalculé chaque matin sur la veille absorbe la panne de la veille : moyenne et écart-type gonflés, il laissera passer la même panne le lendemain. En exploitation, cela revient à exclure les périodes d'incident connues, ou à juger chaque relevé contre une référence qui ne le contient pas. Les codes de ce chapitre calculent leurs seuils sur des séries qui contiennent les incidents, pour montrer ce qu'ils en subissent ; la figure suivante, elle, calcule le sien sur la journée avant l'injection des anomalies.
Elle rend l'arbitrage manipulable. Quatre anomalies ont été injectées dans une série par ailleurs normale, chacune sur une seule minute ; déplacer le seuil fait bouger les deux comptes, et jamais dans le même sens.
anomalies détectées
4 / 4
aucune manquée
fausses alertes
7
sur 1440 relevés
cadence attendue
environ 3,9 par jour
0,270 % hors du seuil
C'est la dernière colonne qu'on présente à une équipe d'exploitation, pas le sigma : à 3σ sur un relevé toutes les minutes, la métrique déclenche environ 3,9 par jour sans qu'il ne se passe rien.
Parcourir les neuf réglages fait apparaître ce qu'aucune formule ne dit : il n'existe pas de seuil sans perte.
À 2σ, la métrique se déclenche 61 fois dans la journée sans que rien ne se passe. À 3σ, elle ne se trompe plus que 7 fois, et attrape encore les quatre anomalies. À 3,5σ, elle ne se trompe presque plus, et laisse passer le pic modéré à 76 %, cerclé en pointillés sur le dessin. Les trois pics francs, eux, restent détectés jusqu'à 5σ : ce ne sont pas eux qui décident du réglage.
C'est toujours l'anomalie la plus discrète qui fixe le seuil, et c'est pourquoi on ne le règle pas sans savoir ce qu'on cherche à détecter.
À 3σ, la figure annonce une cadence de 3,9 fausses alertes par jour et en compte 7 sur cette journée-là. Les deux nombres sont justes : le premier est une espérance, le second un tirage. Sur une seule journée, l'écart est ordinaire : leur nombre suit une loi de Poisson de paramètre 3,9, et une journée sur dix en compte sept ou plus.
C'est la raison pour laquelle on ne règle pas un seuil sur une journée de données. Il faut soit plusieurs semaines, soit le calcul théorique, et de préférence les deux, qui doivent alors se rejoindre.
La cadence est le seul nombre qui se présente. « 3 sigmas » ne veut rien dire pour une équipe d'exploitation. « Environ quatre réveils par jour et par métrique » veut dire quelque chose, et se discute. Le sigma est un moyen de calcul ; la cadence de fausses alertes est la grandeur qu'on négocie.
Une fois la cadence négociée, le seuil s'en déduit en renversant le calcul. Une fausse alerte par jour, sur un relevé à la minute et d'un seul côté, autorise une mesure sur 1 440 au-dessus du seuil, soit 0,069 %. Sur une série normale, c'est le quantile d'ordre de la cloche, vers . Sur une série qui ne l'est pas, même après passage au logarithme, la même phrase donne une méthode qui ne suppose aucune loi : prendre pour seuil le centile d'ordre 99,93 % d'un historique sain. Ce centile ne repose que sur les quelques valeurs les plus hautes, et il faut des semaines de relevés pour l'estimer : sur une seule journée, il serait fixé par une ou deux mesures.
Les leviers, dans l'ordre où on les emploie :
- Exiger une persistance : alerter seulement si le seuil est dépassé pendant minutes consécutives. Un pic isolé disparaît, une surcharge qui dure passe. Le prix est double : l'alerte part minutes plus tard, et un incident plus bref que minutes n'est plus signalé. Les relevés d'une série temporelle n'étant pas indépendants, les dépassements ordinaires arrivent parfois en grappes de quelques minutes, que la persistance laisse passer plus souvent qu'avec des mesures indépendantes ; elle reste pourtant, tant que les incidents qui comptent durent, le levier le plus efficace et le moins coûteux.
- Croiser plusieurs métriques : alerter sur la charge et la latence simultanément. Si les fausses alertes des deux signaux étaient indépendantes, la probabilité qu'elles coïncident serait le produit des deux, bien plus petite. Or une charge élevée allonge justement la latence : le gain réel est moindre que ce produit, et un incident qui ne touche qu'une des deux métriques n'est plus signalé.
- Séparer les régimes : un seuil pour le jour, un pour la nuit, comme le code suivant le montre.
- Regrouper les alertes d'une même cause : des dépassements consécutifs, ou dix serveurs touchés par la même panne de réseau, ne donnent qu'une notification.
- Choisir le seuil selon le coût : manquer une surchauffe peut coûter un arrêt brutal du serveur, voire un composant ; manquer un pic de trafic coûte quelques secondes de lenteur. Les deux ne méritent pas le même réglage. Ce levier-là ne baisse pas les deux erreurs à la fois : il choisit où se placer dans l'arbitrage.
Le seuil calculé sur 24 heures rate un tiers de l'incident. La journée mélange deux régimes, une nuit à 30 % et un plateau diurne à 58 %. Ce mélange gonfle l'écart interquartile, donc pousse le seuil à 86,5 % : seules les dix minutes les plus violentes de l'incident sont vues. Le même calcul mené sur les seules heures ouvrées descend le seuil à 75 % et détecte les quinze minutes.
Même série, même méthode, même règle. Ce qui change, c'est qu'on a d'abord séparé les régimes. Séparer jusqu'au bout demande un second seuil pour la nuit, calculé de la même façon sur les heures avant 6 h et après 21 h : le code le trouve vers 46 %, et une surcharge nocturne à 70 %, invisible sous le seuil du jour, y serait signalée. C'est le conseil qui paraissait théorique au début du chapitre : l'ignorer coûte ici cinq minutes d'incident non vues.
Les deux dernières lignes affichées montrent le prix de la persistance plutôt que son gain. Sur cette journée, aucune minute ordinaire ne franchit le seuil des heures ouvrées : les 15 minutes au-dessus sont exactement celles de l'incident, et il n'y avait rien à filtrer. La règle des cinq minutes n'en garde que 11, parce que l'alerte ne part qu'à la cinquième minute de dépassement, à 10 h 14. Son gain apparaît sur une série plus bruitée, où des minutes isolées franchissent le seuil sans incident derrière.
1.Quel levier réduit les fausses alertes sans durcir le seuil ?
2.Un seuil durci fait passer les fausses alertes de quatre par jour à une tous les onze jours. Que devient l'autre plateau de la balance ?
Le temps entre deux alertes, et l'âge d'un composant
Un seuil à trois sigmas promet 3,9 fausses alertes par jour. L'ingénieur d'astreinte pose une autre question : quelle chance a-t-il d'une nuit de huit heures sans réveil ? Si les fausses alertes arrivent indépendamment les unes des autres, leur nombre sur une durée suit la loi de Poisson du chapitre sur le risque, et l'attente entre deux alertes suit la loi exponentielle de même taux. Une nuit calme, c'est une attente du premier réveil plus longue que huit heures : , un peu plus d'une nuit sur quatre. Les pannes de matériel posent la même question, avec une différence : le taux dépend-il de l'âge ?
Loi exponentielle de paramètre
Densité sur les réels positifs, d'espérance . C'est la loi des durées entre deux événements quand ces événements arrivent au hasard à taux constant : la loi de Poisson compte ces événements, l'exponentielle mesure l'attente entre eux. Elle est la version continue de la loi géométrique, comme l'a noté le chapitre sur le risque.
Le chapitre sur le risque a établi le lien : n'avoir aucun incident sur une durée , de probabilité sous la loi de Poisson, revient à attendre le prochain plus longtemps que . Donc , et la fonction de répartition vaut .
Compter les événements et mesurer l'attente entre eux sont donc deux lectures du même phénomène : y désigne le même taux, une fois par unité de temps, une fois comme inverse d'une durée moyenne.
Sa propriété caractéristique est l'absence de mémoire :
En clair, le membre de gauche se lit « sachant que le composant a déjà tenu la durée , probabilité qu'il tienne encore la durée ». Le membre de droite est la même probabilité pour un composant neuf. L'égalité dit donc que le passé ne compte pas : un composant qui a déjà tenu mille heures tombera en panne dans l'heure suivante avec la probabilité d'un composant sorti d'usine. C'est un modèle de panne accidentelle, pas d'usure.
L'égalité se démontre en une ligne avec la probabilité conditionnelle de Probabilités : tenir suppose d'avoir tenu , donc
| attente (h) | f | g |
|---|---|---|
| 0 | 0,5 | 2 |
| 0,25 | 0,4412 | 1,2131 |
| 0,5 | 0,3894 | 0,7358 |
| 0,75 | 0,3436 | 0,4463 |
| 1 | 0,3033 | 0,2707 |
| 1,25 | 0,2676 | 0,1642 |
| 1,5 | 0,2362 | 0,0996 |
| 1,75 | 0,2084 | 0,0604 |
| 2 | 0,1839 | 0,0366 |
| 2,25 | 0,1623 | 0,0222 |
| 2,5 | 0,1433 | 0,0135 |
| 2,75 | 0,1264 | 0,0082 |
| 3 | 0,1116 | 0,005 |
| 3,25 | 0,0985 | 0,003 |
| 3,5 | 0,0869 | 0,0018 |
| 3,75 | 0,0767 | 0,0011 |
| 4 | 0,0677 | 0,0007 |
| 4,25 | 0,0597 | 0,0004 |
| 4,5 | 0,0527 | 0,0002 |
| 4,75 | 0,0465 | 0,0001 |
| 5 | 0,041 | 0,0001 |
Les deux courbes partent de leur maximum et décroissent sans jamais remonter : à largeur égale, un intervalle d'attente proche de zéro est toujours plus probable qu'un intervalle plus lointain. Avec , l'attente tombe sous dix minutes dans 28 % des cas, et entre une heure et une heure dix dans moins de 4 %. C'est contre-intuitif, et c'est ce qui rend les incidents rapprochés si fréquents sous une loi exponentielle, sans qu'aucune cause commune ne les relie.
Les quantiles se lisent en résolvant , soit . La médiane vaut donc : la moitié des attentes sont plus courtes que les sept dixièmes de l'attente moyenne.
Le taux de panne
L'absence de mémoire se reformule en une grandeur que la fiabilité emploie partout. Le taux de panne à l'instant est la probabilité, rapportée à la durée, de tomber en panne juste après sachant qu'on a tenu jusque-là :
D'où vient ce quotient : la probabilité de lâcher entre et est l'aire d'une bande étroite sous la densité, à peu près . La diviser par , c'est la rapporter aux seuls composants encore en service ; la diviser par , c'est la rapporter à la durée. Il reste .
En clair : parmi les composants encore en service à l'instant , quelle proportion lâche dans l'instant qui suit, rapportée à la durée de cet instant. C'est un taux et non une probabilité : comme une densité, il peut dépasser 1, et la figure de Weibull plus bas le montre monter jusqu'à 4. Pour l'exponentielle, et , donc
Le taux est constant. Et c'est exactement l'absence de mémoire, dite autrement : si la proportion de composants qui lâchent ne dépend pas de leur âge, alors l'âge ne sert à rien pour prédire la panne. Les deux énoncés sont une seule et même propriété.
Loi de Weibull
Elle généralise l'exponentielle en ajoutant un paramètre de forme , ce qui lui permet de représenter l'usure. Avec un paramètre d'échelle , qui fixe la durée caractéristique :
Le taux de panne s'en déduit par le même quotient que pour la loi exponentielle, et le facteur , présent en haut et en bas, se simplifie :
Tout se lit sur l'exposant :
- : l'exposant est négatif, le taux décroît avec l'âge. Mortalité infantile : les défauts de fabrication se révèlent tôt, et un composant qui a passé les premières heures est plus sûr qu'un neuf.
- : l'exposant est nul, le taux est constant. C'est exactement l'exponentielle, qui est donc un cas particulier de Weibull.
- : l'exposant est positif, le taux croît. Usure : la panne devient plus probable avec l'âge.
Le quotient de la probabilité conditionnelle chiffre la décision. Avec et ans, un disque neuf tient sa première année avec la probabilité . Un disque de quatre ans tient l'année suivante avec : près de quatre chances sur dix de le perdre dans l'année, contre moins d'une sur cent pour un neuf.
| âge du composant (en durées caractéristiques) | f | g | h |
|---|---|---|---|
| 0 | non définie | 1 | 0 |
| 0,1 | 1,5811 | 1 | 0,03 |
| 0,2 | 1,118 | 1 | 0,12 |
| 0,3 | 0,9129 | 1 | 0,27 |
| 0,4 | 0,7906 | 1 | 0,48 |
| 0,5 | 0,7071 | 1 | 0,75 |
| 0,6 | 0,6455 | 1 | 1,08 |
| 0,7 | 0,5976 | 1 | 1,47 |
| 0,8 | 0,559 | 1 | 1,92 |
| 0,9 | 0,527 | 1 | 2,43 |
| 1 | 0,5 | 1 | 3 |
| 1,1 | 0,4767 | 1 | 3,63 |
| 1,2 | 0,4564 | 1 | 4,32 |
| 1,3 | 0,4385 | 1 | 5,07 |
| 1,4 | 0,4226 | 1 | 5,88 |
| 1,5 | 0,4082 | 1 | 6,75 |
| 1,6 | 0,3953 | 1 | 7,68 |
| 1,7 | 0,3835 | 1 | 8,67 |
| 1,8 | 0,3727 | 1 | 9,72 |
| 1,9 | 0,3627 | 1 | 10,83 |
| 2 | 0,3536 | 1 | 12 |
Ces trois régimes ne sont pas trois matériels différents : ce sont les trois âges d'un même parc. Au démarrage, les défauts de fabrication font tomber les composants fragiles ; vient ensuite une longue période de pannes accidentelles à taux à peu près constant ; puis l'usure prend le dessus. Mis bout à bout, ces trois morceaux dessinent la courbe en baignoire, et elle dicte deux pratiques de l'exploitation : faire tourner un matériel neuf quelque temps avant de le mettre en production, et le remplacer avant la fin de vie plutôt qu'à la panne.
C'est la loi de référence en fiabilité, et l'une des plus employées pour modéliser la durée de vie des disques durs ; les relevés de parcs réels s'en écartent pourtant, avec un taux de panne qui croît dès les premières années.
- Somme de petits effets → normale.
- Produit de facteurs, série étalée à droite → log-normale.
- Durée entre événements à taux constant → exponentielle.
- Durée de vie avec usure → Weibull.
1.Un seuil produit en moyenne 3,9 fausses alertes par jour, qui arrivent indépendamment les unes des autres. Quelle chance l'ingénieur d'astreinte a-t-il d'une nuit de huit heures sans réveil ?
2.Les durées de vie d'un parc de routeurs suivent une loi exponentielle. Faut-il les remplacer préventivement au bout de trois ans ?
La méthode
- Tracer la série dans le temps avant tout. Les régimes jour/nuit et les incidents s'y voient à l'œil nu.
- Séparer les régimes s'il y en a plusieurs. Un indicateur global sur deux populations mélangées ne décrit ni l'une ni l'autre.
- Identifier la loi : histogramme, puis QQ-plot, puis test, dans cet ordre, du plus parlant au plus formel.
- Choisir l'échelle : un raisonnement en sigmas ne vaut que sur une série vérifiée normale. Sur une grandeur positive et étirée, travailler sur le logarithme ; si aucune échelle ne donne une cloche, poser le seuil sur un centile d'un historique sain.
- Calculer le seuil sur un historique sain, sans les incidents qu'il doit détecter, ou par une méthode robuste tant que les anomalies restent rares ; comparer au moins deux méthodes sur les mêmes données.
- Chiffrer la cadence attendue de fausses alertes, par jour, par métrique, d'un seul côté ou des deux, puis la multiplier par le nombre de métriques et de serveurs : c'est ce total qui rend un seuil acceptable ou non. Dans l'autre sens, partir de la cadence acceptée pour en déduire le seuil.
- Exiger une persistance, ou croiser deux métriques, avant de durcir un seuil, au prix de quelques minutes de retard et des incidents trop brefs pour la franchir ; regrouper en une seule notification les dépassements consécutifs et les alertes d'une même cause.
- Conclure par une recommandation actionnable : quel seuil, sur quelle métrique, avec quelle durée, et pourquoi.
Mettre en pratique
Un seuil d'alerte se choisit en connaissant d'avance le nombre de fausses alertes qu'il produit. Ce nombre se calcule, et il décide de la crédibilité de toute la supervision.
Le prix d'un seuil, en fausses alertes
- 1.
Une métrique est relevée chaque minute. Combien de mesures une semaine produit-elle ?
- 2.
Une métrique suit une loi normale de moyenne 50 et d'écart-type 5. La règle alerte hors de l'intervalle . Quelle est sa borne haute ?
- 3.
Hors de cet intervalle, des deux côtés, il reste 0,27 % des valeurs. Combien de fausses alertes par semaine la règle produit-elle ?
- 4.
Une charge processeur n'inquiète que vers le haut : l'alerte ne surveille que le dépassement de 65. Combien de fausses alertes par semaine produit-elle ?
- 5.
Un seuil à deux sigmas laisse 4,55 % des valeurs au-dehors, des deux côtés. Combien de fausses alertes par semaine produit-il ?
- 6.
Par quel facteur le passage de trois sigmas à deux multiplie-t-il le nombre de fausses alertes ?
- 7.
L'équipe accepte au plus une fausse alerte par semaine sur cette métrique, côté haut. Quelle part des mesures, en pour-cent, le seuil peut-il laisser passer ?
Les réponses disent tout le métier. Un seuil à deux sigmas produit près de quatre cent soixante alertes par semaine sur une seule métrique, soit une toutes les vingt-deux minutes, dix-sept fois plus qu'à trois sigmas, et une équipe noyée sous ces alertes finit par les ignorer toutes, y compris les vraies. Un seuil à trois sigmas en produit vingt-sept des deux côtés, la moitié s'il ne surveille que le haut, ce qui reste beaucoup dès qu'on supervise cinquante métriques. Et la dernière réponse renverse le calcul : une alerte par semaine n'autorise que 0,0099 % des mesures au-delà du seuil, quand trois sigmas en laissent 0,135 % d'un côté et quatre sigmas 0,0032 %. Le seuil cherché tombe entre les deux, vers 3,7 σ.
Ce que le calcul impose à la conception. Le nombre de fausses alertes croît avec le nombre de métriques supervisées, et personne ne supervise une seule métrique. Cinquante métriques à trois sigmas produisent plus de mille trois cents alertes par semaine, ce qui est ingérable.
Les remèdes ne sont donc pas dans le seuil mais autour : exiger que la valeur reste anormale pendant plusieurs relevés consécutifs, regrouper les alertes d'une même cause, et réserver la notification immédiate à ce qui exige une action immédiate. Un seuil bien réglé sur une métrique isolée ne dit rien de ce que produira le parc entier.
Une série de latences a pour moyenne 45 ms et pour médiane 28 ms. Que peut-on en déduire ?
La moyenne est très supérieure à la médiane : la distribution est fortement asymétrique à droite. Quelques requêtes très lentes tirent la moyenne, tandis que la majorité se situe autour de 28 ms.
C'est compatible avec une loi log-normale, typique des temps de réponse, sans le prouver : une exponentielle, une loi de Weibull ou un mélange de deux régimes placent aussi la moyenne au-dessus de la médiane. Le QQ-plot du logarithme tranchera.
Conséquence pratique : ne pas utiliser de z-score sur cette série. Travailler sur , ou passer par des quantiles : c'est la raison d'être des et (les 95ᵉ et 99ᵉ centiles) en supervision applicative.
Une métrique normale est relevée toutes les dix secondes, et l'alerte ne surveille que le côté haut. Combien de fausses alertes par jour produit un seuil à trois sigmas ? Quel seuil faut-il pour descendre sous trois par jour ?
Une journée compte relevés. D'un seul côté, trois sigmas laissent passer 0,135 % des valeurs : 11,7 fausses alertes par jour, six fois plus qu'au relevé à la minute, pour le même seuil.
À trois sigmas et demi, la part au-delà du seuil haut tombe à 0,023 % : 2,0 par jour.
Relever plus souvent ne rend pas la supervision plus sûre à seuil égal : chaque relevé de plus est une occasion de plus de franchir le seuil par hasard. La fréquence de relevé et le seuil se règlent ensemble. Et ce calcul suppose les mesures indépendantes, ce qui l'est encore moins à dix secondes qu'à la minute : les dépassements ordinaires arrivent alors en grappes, qu'une règle de persistance filtre un peu moins bien, et que le regroupement des dépassements consécutifs ramène à une seule notification.
Une supervision calcule le z-score de chaque relevé sur les dix derniers relevés, celui du moment compris. Pendant une panne franche, l'alerte ne part jamais. Pourquoi, et que changer ?
Le relevé jugé entre dans la moyenne et l'écart-type qui le jugent : c'est l'effet de masquage poussé à son terme. Sur dix relevés, aucun z-score ne peut dépasser , sous le seuil de 3, quelle que soit la panne.
Trois corrections. Juger le relevé contre les dix précédents, sans lui : le seuil est alors réglé sur des données qui ne contiennent pas ce qu'il doit détecter. Allonger la fenêtre au-delà de onze relevés, ce qui lève le plafond, mais pas le masquage. Ou passer au z robuste, que le relevé du moment ne déplace pas tant que les relevés anormaux restent minoritaires dans la fenêtre.
Un disque a une durée de vie suivant une loi de Weibull de paramètre . Que faut-il en conclure pour la maintenance ?
signifie un taux de panne croissant avec l'âge : c'est un phénomène d'usure, pas d'accident.
Conséquence directe : la maintenance préventive a du sens. Remplacer les disques au-delà d'un certain âge réduit réellement le taux de panne, et l'âge est un bon prédicteur.
Contraste utile : si (exponentielle, sans mémoire), remplacer un composant ancien par un neuf ne changerait rien au risque de panne du mois suivant. La politique de maintenance découle directement de la forme de la loi.
Le test de Kolmogorov-Smirnov donne sur 10 000 mesures de consommation électrique. Faut-il abandonner le modèle normal ?
Pas nécessairement. Sur un échantillon de cette taille, le test détecte des écarts infimes : aucune série physique réelle ne suit exactement une loi théorique, et le test finit toujours par le voir.
La question utile n'est pas « la loi est-elle exacte ? » mais « l'écart est-il gênant pour l'usage prévu ? ». Si on pose un seuil à 3 sigmas, ce qui compte est la qualité de l'ajustement dans la queue de distribution, et cela se lit sur un QQ-plot, pas sur une -valeur.
Il faut donc regarder l'ampleur de l'écart plutôt que sa significativité, et la regarder là où elle compte. La statistique du test (l'écart maximal entre les deux fonctions de répartition) mesure bien une ampleur, mais elle se forme le plus souvent au milieu de la distribution, là où le seuil ne se joue pas : pour un seuil, c'est le haut du QQ-plot qui tranche.
Deux serveurs ont la même charge CPU moyenne de 55 %. Comment savoir lequel est en difficulté ?
La moyenne ne peut pas répondre. Il faut :
- La dispersion : un serveur régulier à 55 % et un autre alternant 10 % et 100 % n'ont pas le même comportement. Écart-type et les séparent.
- La série temporelle : le second est-il saturé pendant les heures ouvrées et inactif la nuit, auquel cas le régime est attendu et c'est la file d'attente aux heures ouvrées qui dira s'il manque de la capacité, ou ses pics sont-ils erratiques ?
- Les quantiles hauts : et disent la charge dans les pires moments, qui est ce que ressentent les utilisateurs.
- Les métriques corrélées : mémoire, activité de swap, latence. Un CPU à 55 % avec du swap soutenu est un serveur en difficulté ; à 55 % sans swap, c'est un serveur qui travaille.
- La file d'attente des processus prêts, rapportée au nombre de cœurs : c'est le signal annoncé au début du chapitre. Un serveur à 55 % dont la charge moyenne dépasse par moments son nombre de cœurs a des tâches qui attendent leur tour ; à 55 % avec une file vide, il a de la marge.
Chapitre révisé en octobre 2026 · Une erreur dans ce chapitre ?
Dans la bibliothèque d'exercices
z-score, IQR, MAD et seuils d'alerte.
- Détecter par le z-scoreNiveau 2
- Combien de fausses alertes par jour ?Niveau 2
- Détecter par l'écart interquartileNiveau 2
- Prédire l'effet de masquageNiveau 3
- Le z-score robuste (MAD)Niveau 3
- Ne pas alerter sur un pic isoléNiveau 4
- Remplacer avant la panne, ou nonNiveau 3
- Un cache qui tient la moyenneNiveau 2