Seuils & Alertes


Les seuils sont la manière dont vous détectez les régressions de performance dans Bencher. Un seuil est attribué à une combinaison unique de : Branche, Plateau de test, et Mesure. Un seuil doit avoir une limite inférieure, une limite supérieure, ou les deux. Chaque limite est utilisée pour calculer une limite de seuil. Ensuite, chaque nouvelle mesure est vérifiée par rapport à chaque limite de seuil.

  • Limite inférieure
    • Une limite inférieure est utilisée lorsqu’une valeur plus petite indiquerait une régression de performance, comme avec la mesure du débit.
  • Limite supérieure
    • Une limite supérieure est utilisée lorsqu’une valeur plus élevée indiquerait une régression de performance, comme avec la mesure de latence.

Il existe plusieurs types de seuils :

Alertes

Les alertes sont générées lorsqu’une nouvelle métrique est inférieure à une limite inférieure de seuil ou supérieure à une limite supérieure de seuil. Pour échouer une construction CI en cas d’alerte, définissez le drapeau --err lors de l’utilisation de la sous-commande CLI bencher run.

Suppression des alertes

Il peut parfois être utile de supprimer les alertes pour un Benchmark particulier. La meilleure façon de faire cela est d’ajouter l’un de ces suffixes spéciaux au nom de ce Benchmark :

  • _bencher_ignore
  • BencherIgnore
  • -bencher-ignore

Par exemple, si votre Benchmark s’appelait my_flaky_benchmark, alors le renommer en my_flaky_benchmark_bencher_ignore ignorerait juste ce Benchmark particulier à l’avenir. Les Benchmarks ignorés ne sont pas vérifiés contre le seuil, même si un seuil existe. Cependant, les mesures des Benchmarks ignorés sont toujours stockées. En continuant avec notre exemple, les résultats de my_flaky_benchmark_bencher_ignore seraient toujours stockés dans la base de données sous my_flaky_benchmark. Si vous supprimez le suffixe et revenez au nom original du Benchmark, alors les choses reprennent exactement là où vous les avez laissées.

Seuils Statiques

Un Seuil Statique est le seuil le plus simple. Si une nouvelle Métrique est en dessous d’une Limite Inférieure définie ou au-dessus d’une Limite Supérieure définie, une Alerte est générée. C’est-à-dire que la Limite Inférieure/Supérieure est une Limite Inférieure/Supérieure explicite. Soit une Limite Inférieure, une Limite Supérieure, ou les deux doivent être définies. Les Seuils Statiques fonctionnent le mieux lorsque la valeur de la Métrique doit rester à l’intérieur d’une plage constante, comme les compteurs d’instructions.

  • Limite Inférieure du Seuil Statique

    • Une Limite Inférieure de Seuil Statique peut être n’importe quel nombre flottant. Elle est utilisée lorsqu’une valeur inférieure indiquerait une régression de performance. La Limite Inférieure doit être inférieure ou égale à la Limite Supérieure, si les deux sont spécifiées.
    • Par exemple, si vous aviez un Seuil Statique avec une Limite Inférieure définie à 100 la Limite de la Limite Inférieure serait également de 100 et toute valeur inférieure à 100 générera une Alerte.
  • Limite Supérieure du Seuil Statique

    • Une Limite Supérieure de Seuil Statique peut être n’importe quel nombre flottant. Elle est utilisée lorsqu’une valeur supérieure indiquerait une régression de performance. La Limite Supérieure doit être supérieure ou égale à la Limite Inférieure, si les deux sont spécifiées.
    • Par exemple, si vous aviez un Seuil Statique avec une Limite Supérieure définie à 100 la Limite de la Limite Supérieure serait également de 100 et toute valeur supérieure à 100 générera une Alerte.

Seuils Statistiques

Tous les autres Seuils sont des Seuils Statistiques. Chaque Seuil Statistique utilise des Métriques historiques et un test de signification statistique unique pour déterminer si une Alerte est générée. Par conséquent, la Limite Inférieure/Supérieure signifiera des choses différentes pour différents Seuils Statistiques. En plus de définir une Limite Inférieure et/ou une Limite Supérieure, il existe des contrôles pour les Métriques historiques utilisées (c’est-à-dire échantillonnées).

  • Taille d’Échantillon Minimum

    • Une Taille d’Échantillon Minimum peut être définie pour un Seuil Statistique. Le Seuil Statistique n’exécutera son test de signification statistique que si le nombre de Métriques historiques est supérieur ou égal à la Taille d’Échantillon Minimum. La Taille d’Échantillon Minimum doit être inférieure ou égale à la Taille d’Échantillon Maximum, si les deux sont spécifiés.
  • Taille d’Échantillon Maximum

    • Une Taille d’Échantillon Maximum peut être définie pour un Seuil Statistique. Le Seuil Statistique se limitera uniquement aux Métriques historiques les plus récentes, plafonnées à la Taille d’Échantillon Maximum pour son test de signification statistique. La Taille d’Échantillon Maximum doit être supérieure ou égale à la Taille d’Échantillon Minimum, si les deux sont spécifiés.
  • Taille de la Fenêtre

    • Une Taille de la Fenêtre en secondes peut être définie pour un Seuil Statistique. Le Seuil Statistique se limitera uniquement aux Métriques historiques les plus récentes, limitées par la fenêtre de temps donnée pour son test de signification statistique.

Seuils de Pourcentage

Un Seuil de Pourcentage est le plus simple des Seuils Statistiques. Si une nouvelle Mesure est inférieure à un certain pourcentage de la moyenne (Limite Inférieure) ou supérieure à un certain pourcentage de la moyenne (Limite Supérieure) de vos Mesures historiques, une Alerte est générée. Une Limite Inférieure, une Limite Supérieure, ou les deux doivent être définies. Les Seuils de Pourcentage fonctionnent mieux lorsque la valeur de la Mesure doit rester dans une plage connue comme bonne.

  • Limite Inférieure du Seuil de Pourcentage

    • Une Limite Inférieure du Seuil de Pourcentage peut être n’importe quel pourcentage supérieur ou égal à zéro sous forme décimale (ex: utilisez 0.10 pour 10%). Elle est utilisée lorsqu’une valeur plus petite indiquerait une régression des performances.
    • Par exemple, si vous aviez un Seuil de Pourcentage avec une Limite Inférieure définie à 0.10 et que vos Mesures historiques avaient une moyenne de 100 la Limite de la Limite Inférieure serait 90 et toute valeur inférieure à 90 générerait une Alerte.
  • Limite Supérieure du Seuil de Pourcentage

    • Une Limite Supérieure du Seuil de Pourcentage peut être n’importe quel pourcentage supérieur ou égal à zéro sous forme décimale (ex: utilisez 0.10 pour 10%). Elle est utilisée lorsqu’une valeur supérieure indiquerait une régression des performances.
    • Par exemple, si vous aviez un Seuil de Pourcentage avec une Limite Supérieure définie à 0.10 et que vos Mesures historiques avaient une moyenne de 100 la Limite de la Limite Supérieure serait 110 et toute valeur supérieure à 110 générerait une Alerte.
The Normal Distribution https://commons.wikimedia.org/wiki/File:The_Normal_Distribution.svg

Seuils de z-score

Un seuil de z-score mesure le nombre d’écarts types (σ) qu’une nouvelle métrique est par rapport à la moyenne de vos métriques historiques en utilisant un z-score.

Les seuils de z-score fonctionnent le mieux lorsque :

  • Il n’y a pas de différences extrêmes entre les exécutions de benchmark
  • Les exécutions de benchmark sont totalement indépendantes les unes des autres
  • Le nombre d’itérations pour une seule exécution de benchmark est inférieur à 10% des métriques historiques
  • Il y a au moins 30 métriques historiques (Taille de l’échantillon minimale >= 30)

Pour les seuils de z-score, les écarts types sont exprimés en pourcentage cumulatif décimal. Si une nouvelle métrique est en dessous d’un certain pourcentage cumulatif du côté gauche (Limite inférieure) ou au-dessus d’un certain pourcentage cumulatif du côté droit (Limite supérieure) pour vos métriques historiques, une alerte est générée. Une limite inférieure, une limite supérieure, ou les deux doivent être définies.

  • Limite inférieure du seuil de z-score

    • Une limite inférieure du seuil de z-score peut être un décimal positif entre 0.5 et 1.0. Où 0.5 représente la moyenne et 1.0 représente toutes les valeurs possibles du côté gauche (-∞). Elle est utilisée lorsqu’une valeur plus petite indiquerait une régression des performances.
    • Par exemple, si vous utilisiez un seuil de z-score avec une limite inférieure de 0.977 et que vos métriques historiques avaient une moyenne de 100 et un écart type de 10, la limite de la limite inférieure serait 80.05 et toute valeur inférieure à 80.05 générerait une alerte.
  • Limite supérieure du seuil de z-score

    • Une limite supérieure du seuil de z-score peut être un décimal positif entre 0.5 et 1.0. Où 0.5 représente la moyenne et 1.0 représente toutes les valeurs possibles du côté droit (∞). Elle est utilisée lorsqu’une valeur plus grande indiquerait une régression des performances.
    • Par exemple, si vous utilisiez un seuil de z-score avec une limite supérieure de 0.977 et que vos métriques historiques avaient une moyenne de 100 et un écart type de 10, la limite de la limite supérieure serait 119.95 et toute valeur supérieure à 119.95 générerait une alerte.

Seuils de test t

Un seuil de test t mesure l’intervalle de confiance (IC) pour déterminer la probabilité qu’une nouvelle Métrique soit supérieure ou inférieure à la moyenne de vos Métriques historiques à l’aide d’un test t de Student.

Les seuils de test t fonctionnent mieux lorsque :

  • Il n’y a pas de différences extrêmes entre les runs de benchmark
  • Les runs de benchmark sont totalement indépendants les uns des autres
  • Le nombre d’itérations pour un seul run de benchmark est inférieur à 10% des Métriques historiques

Pour les seuils de test t, les intervalles de confiance sont exprimés en pourcentage de confiance décimal. Si une nouvelle Métrique est inférieure à un certain pourcentage de confiance côté gauche (Limite Inférieure) ou supérieure à un certain pourcentage de confiance côté droit (Limite Supérieure) pour vos Métriques historiques, une Alerte est générée. Soit une Limite Inférieure, soit une Limite Supérieure, ou les deux, doivent être définies.

  • Limite Inférieure du seuil de test t

    • Une Limite Inférieure de seuil de test t peut être n’importe quel décimal positif entre 0.5 et 1.0. Où 0.5 représente la moyenne et 1.0 représente toutes les valeurs possibles du côté gauche (-∞). Elle est utilisée lorsqu’une valeur plus petite indiquerait une régression de performance.
    • Par exemple, si vous utilisiez un seuil de test t avec une Limite Inférieure de 0.977 et que vous aviez 25 Métriques historiques avec une moyenne de 100 et un écart type de 10, la Limite de la Limite Inférieure serait de 78.96 et toute valeur inférieure à 78.96 générerait une Alerte.
  • Limite Supérieure du seuil de test t

    • Une Limite Supérieure de seuil de test t peut être n’importe quel décimal positif entre 0.5 et 1.0. Où 0.5 représente la moyenne et 1.0 représente toutes les valeurs possibles du côté droit (∞). Elle est utilisée lorsqu’une valeur plus grande indiquerait une régression de performance.
    • Par exemple, si vous utilisiez un seuil de test t avec une Limite Supérieure de 0.977 et que vous aviez 25 Métriques historiques avec une moyenne de 100 et un écart type de 10, la Limite de la Limite Supérieure serait de 121.04 et toute valeur supérieure à 121.04 générerait une Alerte.
The Log Normal Distribution https://mathworld.wolfram.com/images/eps-svg/LogNormalDistribution_800.svg

Seuils Log Normaux

Un seuil Log Normal mesure la probabilité qu’une nouvelle Métrique soit supérieure ou inférieure au point central de vos Métriques historiques en utilisant une Distribution Log Normale.

Les seuils Log Normaux fonctionnent au mieux quand :

  • Les exécutions de référence sont totalement indépendantes les unes des autres
  • Le nombre d’itérations pour une seule exécution de référence est inférieur à 10% des Métriques historiques
  • Toutes les données sont positives (le logarithme naturel d’un nombre négatif est indéfini)

Pour les seuils Log Normaux, la probabilité est exprimée en pourcentage décimal. Si une nouvelle Métrique est inférieure à un certain pourcentage du côté gauche (Limite Inférieure) ou supérieure à un certain pourcentage du côté droit (Limite Supérieure) de vos Métriques historiques, une Alerte est générée. Une Limite Inférieure, une Limite Supérieure, ou les deux doivent être définies.

  • Limite inférieure du seuil Log Normal

    • Une Limite inférieure du seuil Log Normal peut être n’importe quel décimal positif entre 0.5 et 1.0. Où 0.5 représente le point central et 1.0 représente toutes les valeurs possibles du côté gauche (-∞). Elle est utilisée lorsqu’une valeur plus petite indiquerait une régression de performance.
    • Par exemple, si vous utilisez un seuil Log Normal avec une Limite Inférieure de 0.977 et que vous avez 25 Métriques historiques centrées autour de 100 et un outlier précédent à 200, la Limite Inférieure serait de 71.20 et toute valeur inférieure à 71.20 générerait une Alerte.
  • Limite supérieure du seuil Log Normal

    • Une Limite supérieure du seuil Log Normal peut être n’importe quel décimal positif entre 0.5 et 1.0. Où 0.5 représente le point central et 1.0 représente toutes les valeurs possibles du côté droit (∞). Elle est utilisée lorsqu’une valeur plus grande indiquerait une régression de performance.
    • Par exemple, si vous utilisez un seuil Log Normal avec une Limite Supérieure de 0.977 et que vous avez 25 Métriques historiques centrées autour de 100 et un outlier précédent à 200, la Limite Supérieure serait de 134.18 et toute valeur supérieure à 134.18 génèrerait une Alerte.
Interquartile Range https://access.openupresources.org/curricula/our6-8math/embeds/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbTRmIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--941ca9b24415706ee262cc85b237c99ba4ca015b/6.8.19.Images.student.summary.03_en.svg

Seuils de l’Intervalle Interquartile

Un seuil de l’intervalle interquartile mesure combien de multiples de l’intervalle interquartile (IQR) une nouvelle métrique est au-dessus ou en dessous de la médiane de vos métriques historiques. Si une nouvelle métrique est en dessous d’un certain multiple de l’IQR par rapport à la médiane (limite inférieure) ou au-dessus d’un certain multiple de l’IQR par rapport à la médiane (limite supérieure) de vos métriques historiques, une alerte est générée. Une limite inférieure, une limite supérieure, ou les deux doivent être définies.

  • Limite Inférieure du Seuil de l’Intervalle Interquartile

    • Une limite inférieure du seuil de l’intervalle interquartile peut être n’importe quel multiplicateur supérieur ou égal à zéro (ex: utilisez 2.0 pour 2x). Elle est utilisée lorsqu’une valeur plus petite indiquerait une régression des performances.
    • Par exemple, si vous aviez un seuil de l’intervalle interquartile avec une limite inférieure définie à 2.0 et que vos métriques historiques avaient une médiane de 100 et un intervalle interquartile de 10, la limite inférieure serait de 80 et toute valeur inférieure à 80 générerait une alerte.
  • Limite Supérieure du Seuil de l’Intervalle Interquartile

    • Une limite supérieure du seuil de l’intervalle interquartile peut être n’importe quel multiplicateur supérieur ou égal à zéro (ex: utilisez 2.0 pour 2x). Elle est utilisée lorsqu’une valeur plus grande indiquerait une régression des performances.
    • Par exemple, si vous aviez un seuil de l’intervalle interquartile avec une limite supérieure définie à 2.0 et que vos métriques historiques avaient une médiane de 100 et un intervalle interquartile de 10, la limite supérieure serait de 120 et toute valeur supérieure à 120 générerait une alerte.

Seuils de l’Écart Interquartile Delta

Un seuil de l’écart interquartile Delta mesure combien de multiples du changement moyen en pourcentage (Δ) de l’écart interquartile (IQR) une nouvelle métrique est au-dessus ou en dessous de la médiane de vos métriques historiques. Si une nouvelle métrique est en dessous d’un certain multiple du ΔIQR de la médiane (Limite inférieure) ou au-dessus d’un certain multiple du ΔIQR de la médiane (Limite supérieure) de vos métriques historiques, une alerte est générée. Une limite inférieure, une limite supérieure, ou les deux doivent être définies.

  • Limite inférieure du seuil de l’écart interquartile Delta

    • Une limite inférieure du seuil de l’écart interquartile Delta peut être n’importe quel multiplicateur supérieur ou égal à zéro (par exemple : utilisez 2.0 pour 2x). Elle est utilisée lorsqu’une valeur plus petite indiquerait une régression des performances.
    • Par exemple, si vous aviez un seuil de l’écart interquartile Delta avec une limite inférieure fixée à 2.0 et que vos métriques historiques avaient une médiane de 100, un écart interquartile de 10, et une moyenne de l’écart interquartile delta de 0.2 (20%) la limite inférieure serait de 60 et toute valeur inférieure à 60 générerait une alerte.
  • Limite supérieure du seuil de l’écart interquartile Delta

    • Une limite supérieure du seuil de l’écart interquartile Delta peut être n’importe quel multiplicateur supérieur ou égal à zéro (par exemple : utilisez 2.0 pour 2x). Elle est utilisée lorsqu’une valeur plus grande indiquerait une régression des performances.
    • Par exemple, si vous aviez un seuil de l’écart interquartile Delta avec une limite supérieure fixée à 2.0 et que vos métriques historiques avaient une médiane de 100, un écart interquartile de 10, et une moyenne de l’écart interquartile delta de 0.2 (20%) la limite supérieure serait de 140 et toute valeur supérieure à 140 générerait une alerte.


🐰 Bravo! Vous avez tout appris sur les Seuils & Alertes! 🎉


Continuer : Benchmarking Continu ➡

🤖 Ce document a été automatiquement généré par OpenAI GPT-4. Il peut ne pas être précis et peut contenir des erreurs. Si vous trouvez des erreurs, veuillez ouvrir une issue sur GitHub.