Schwellenwerte & Alarme
Schwellenwerte sind der Weg, wie Sie Leistungsrückschritte in Bencher erfassen. Ein Schwellenwert wird einer eindeutigen Kombination aus Zweig, Testumgebung und Maßstab zugewiesen. Ein Schwellenwert muss eine untere Grenze, eine obere Grenze oder beides haben. Jede Grenze wird verwendet, um eine Grenzwertlimit zu berechnen. Dann wird jeder neue Maßstab gegen jedes Grenzwertlimit geprüft.
- Untere Grenze
- Eine untere Grenze wird verwendet, wenn ein kleinerer Wert eine Leistungsverschlechterung angeben würde, wie zum Beispiel bei der Durchsatzmessung.
- Obere Grenze
- Eine obere Grenze wird verwendet, wenn ein größerer Wert eine Leistungsverschlechterung angeben würde, wie zum Beispiel bei der Latenzmessung.
Es gibt verschiedene Arten von Schwellenwerten:
Alarme
Alarme werden generiert, wenn eine neue Metrik unterhalb einer Schwellenwertuntergrenze oder oberhalb einer Schwellenwertobergrenze liegt.
Um einen CI-Build im Falle eines Alarms zu fehlschlagen, setzen Sie das --err
Flag, wenn Sie den bencher run
CLI-Unterbefehl verwenden.
Unterdrückung von Alarmen
Manchmal kann es nützlich sein, Alarme für einen bestimmten Benchmark zu unterdrücken. Die beste Möglichkeit, dies zu tun, besteht darin, einem der speziellen Suffixe zum Namen dieses Benchmarks hinzuzufügen:
_bencher_ignore
BencherIgnore
-bencher-ignore
Zum Beispiel, wenn Ihr Benchmark my_flaky_benchmark
genannt wird, dann wäre es hilfreich, es in my_flaky_benchmark_bencher_ignore
umzubenennen
und somit würde genau dieser Benchmark ignoriert.
Ignorierte Benchmarks werden nicht gegen die Schwelle geprüft, auch wenn eine vorhanden ist.
Die Metriken für ignorierte Benchmarks werden jedoch weiterhin gespeichert.
Beim Fortfahren mit unserem Beispiel würden die Ergebnisse von my_flaky_benchmark_bencher_ignore
weiterhin in der Datenbank unter my_flaky_benchmark
gespeichert.
Wenn Sie das Suffix entfernen und zum ursprünglichen Benchmark-Namen zurückkehren,
dann fangen die Dinge genau dort an, wo Sie aufgehört haben.
Statische Schwellenwerte
Ein statischer Schwellenwert ist der einfachste Schwellenwert. Wenn ein neuer Metrikwert unter einer gesetzten unteren Grenze oder über einer gesetzten oberen Grenze liegt, wird ein Alarm erzeugt. Das heißt, die untere/obere Grenze ist eine explizite untere/obere Grenzbegrenzung. Entweder muss eine untere Grenze, eine obere Grenze oder beides gesetzt werden. Statische Schwellenwerte funktionieren am besten, wenn der Wert der Metrik innerhalb eines konstanten Bereichs bleiben sollte, wie zum Beispiel bei Anweisungsanzahlen.
-
Untere Grenze des statischen Schwellenwerts
- Eine untere Grenze des statischen Schwellenwerts kann eine beliebige Gleitkommazahl sein. Sie wird verwendet, wenn ein kleinerer Wert eine Leistungsverschlechterung anzeigen würde. Die untere Grenze muss kleiner oder gleich der oberen Grenze sein, wenn beide angegeben sind.
- Zum Beispiel, wenn Sie einen statischen Schwellenwert mit einer unteren Grenze von
100
hätten, wäre die untere Grenzbegrenzung ebenfalls100
und jeder Wert kleiner als100
würde einen Alarm auslösen.
-
Obere Grenze des statischen Schwellenwerts
- Eine obere Grenze des statischen Schwellenwerts kann eine beliebige Gleitkommazahl sein. Sie wird verwendet, wenn ein größerer Wert eine Leistungsverschlechterung anzeigen würde. Die obere Grenze muss größer oder gleich der unteren Grenze sein, wenn beide angegeben sind.
- Zum Beispiel, wenn Sie einen statischen Schwellenwert mit einer oberen Grenze von
100
hätten, wäre die obere Grenzbegrenzung ebenfalls100
und jeder Wert größer als100
würde einen Alarm auslösen.
Statistische Schwellenwerte
Alle anderen Schwellenwerte sind statistische Schwellenwerte. Jeder statistische Schwellenwert verwendet historische Metriken und einen einzigartigen statistischen Signifikanztest, um zu bestimmen, ob eine Warnung generiert wird. Daher bedeutet die untere/obere Grenze bei verschiedenen statistischen Schwellenwerten unterschiedliche Dinge. Zusätzlich zur Festlegung einer unteren und/oder oberen Grenze gibt es Kontrollen, welche historischen Metriken verwendet werden (d.h. abgetastet).
-
Mindest-Stichprobengröße
- Für einen statistischen Schwellenwert kann eine Mindest-Stichprobengröße festgelegt werden. Der statistische Schwellenwert führt seinen statistischen Signifikanztest nur durch, wenn die Anzahl der historischen Metriken größer oder gleich der Mindest-Stichprobengröße ist. Die Mindest-Stichprobengröße muss kleiner oder gleich der maximalen Stichprobengröße sein, falls beide angegeben sind.
-
Maximale Stichprobengröße
- Für einen statistischen Schwellenwert kann eine maximale Stichprobengröße festgelegt werden. Der statistische Schwellenwert beschränkt sich nur auf die neuesten historischen Metriken, begrenzt durch die maximale Stichprobengröße für seinen statistischen Signifikanztest. Die maximale Stichprobengröße muss größer oder gleich der Mindest-Stichprobengröße sein, wenn beide angegeben sind.
-
Fenstergröße
- Für einen statistischen Schwellenwert kann eine Fenstergröße in Sekunden festgelegt werden. Der statistische Schwellenwert beschränkt sich nur auf die neuesten historischen Metriken, begrenzt durch das gegebene Zeitfenster für seinen statistischen Signifikanztest.
Prozentschwellen
Eine Prozentschwelle ist die einfachste statistische Schwelle. Wenn eine neue Metrik unter einen bestimmten Prozentsatz des Mittelwerts (Untere Grenze) oder über einen bestimmten Prozentsatz des Mittelwerts (Obere Grenze) Ihrer historischen Metriken liegt, wird ein Alarm ausgelöst. Entweder muss eine untere Grenze, eine obere Grenze, oder beides gesetzt werden. Prozentschwellen funktionieren am besten, wenn der Wert der Metrik innerhalb eines bekannten guten Bereichs bleiben sollte.
-
Untere Grenze der Prozentschwelle
- Eine untere Grenze der Prozentschwelle kann ein beliebiger Prozentsatz in Dezimalform sein, der größer oder gleich Null ist (z. B. verwenden Sie
0.10
für10%
). Es wird verwendet, wenn ein kleinerer Wert auf eine Leistungsverschlechterung hinweisen würde. - Zum Beispiel, wenn Sie eine Prozentschwelle mit einer unteren Grenze von
0.10
festgelegt hätten und Ihre historischen Metriken einen Mittelwert von100
hatten, wäre das untere Grenzlimit90
und jeder Wert unter90
würde einen Alarm auslösen.
- Eine untere Grenze der Prozentschwelle kann ein beliebiger Prozentsatz in Dezimalform sein, der größer oder gleich Null ist (z. B. verwenden Sie
-
Obere Grenze der Prozentschwelle
- Eine obere Grenze der Prozentschwelle kann ein beliebiger Prozentsatz in Dezimalform sein, der größer oder gleich Null ist (z. B. verwenden Sie
0.10
für10%
). Es wird verwendet, wenn ein größerer Wert auf eine Leistungsverschlechterung hinweisen würde. - Zum Beispiel, wenn Sie eine Prozentschwelle mit einer oberen Grenze von
0.10
festgelegt hätten und Ihre historischen Metriken einen Mittelwert von100
hatten, wäre das obere Grenzlimit110
und jeder Wert über110
würde einen Alarm auslösen.
- Eine obere Grenze der Prozentschwelle kann ein beliebiger Prozentsatz in Dezimalform sein, der größer oder gleich Null ist (z. B. verwenden Sie
z-Score Schwellenwerte
Ein z-Score Schwellenwert misst die Anzahl der Standardabweichungen (σ) anhand derer eine neue Metrik vom Durchschnitt Ihrer historischen Metriken mithilfe eines z-Scores bestimmt wird.
z-Score Schwellenwerte funktionieren am besten, wenn:
- Es keine extremen Unterschiede zwischen Benchmark-Läufen gibt
- Benchmark-Läufe völlig unabhängig voneinander sind
- Die Anzahl der Iterationen für einen einzelnen Benchmark-Lauf weniger als 10% der historischen Metriken beträgt
- Es mindestens 30 historische Metriken gibt (minimale Stichprobengröße >= 30)
Bei z-Score Schwellenwerten werden Standardabweichungen als kumulative Dezimalprozentsätze ausgedrückt. Wenn eine neue Metrik unter einem bestimmten kumulativen Prozentsatz auf der linken Seite (untere Grenze) oder über einem bestimmten kumulativen Prozentsatz auf der rechten Seite (obere Grenze) für Ihre historischen Metriken liegt, wird ein Alarm generiert. Es muss entweder eine untere Grenze, eine obere Grenze oder beides festgelegt werden.
-
z-Score Schwellenwert untere Grenze
- Eine untere Grenze für den z-Score Schwellenwert kann jede positive Dezimalzahl zwischen
0.5
und1.0
sein. Wo0.5
den Mittelwert darstellt und1.0
alle möglichen Werte auf der linken Seite (-∞). Es wird verwendet, wenn ein kleinerer Wert eine Leistungsverschlechterung anzeigen würde. - Wenn Sie beispielsweise einen z-Score Schwellenwert mit einer unteren Grenze von
0.977
verwendet und Ihre historischen Metriken hatten einen Durchschnitt von100
und eine Standardabweichung von10
, wäre die untere Grenzlimite80.05
und jeder Wert weniger als80.05
würde einen Alarm generieren.
- Eine untere Grenze für den z-Score Schwellenwert kann jede positive Dezimalzahl zwischen
-
z-Score Schwellenwert obere Grenze
- Eine obere Grenze für den z-Score Schwellenwert kann jede positive Dezimalzahl zwischen
0.5
und1.0
sein. Wo0.5
den Mittelwert darstellt und1.0
alle möglichen Werte auf der rechten Seite (∞). Es wird verwendet, wenn ein größerer Wert eine Leistungsverschlechterung anzeigen würde. - Wenn Sie beispielsweise einen z-Score Schwellenwert mit einer oberen Grenze von
0.977
verwendet und Ihre historischen Metriken hatten einen Durchschnitt von100
und eine Standardabweichung von10
, wäre die obere Grenzlimite119.95
und jeder Wert größer als119.95
würde einen Alarm generieren.
- Eine obere Grenze für den z-Score Schwellenwert kann jede positive Dezimalzahl zwischen
t-Test Schwellenwerte
Ein t-Test Schwellenwert misst das Konfidenzintervall (KI) dafür, wie wahrscheinlich es ist, dass eine neue Metrik über oder unter dem Durchschnitt Ihrer historischen Metriken liegt, und verwendet dafür einen Student’s t-Test.
t-Test Schwellenwerte funktionieren am besten, wenn:
- Es gibt keine extremen Unterschiede zwischen Benchmark-Läufen
- Benchmark-Läufe völlig unabhängig voneinander sind
- Die Anzahl der Iterationen für einen einzelnen Benchmark-Lauf weniger als 10% der historischen Metriken ausmacht
Für t-Test Schwellenwerte werden Konfidenzintervalle als dezimales Vertrauensprozentsatz ausgedrückt. Wenn eine neue Metrik unter einem bestimmten linksseitigen Konfidenzprozentsatz (untere Grenze) oder über einem bestimmten rechtsseitigen Konfidenzprozentsatz (obere Grenze) für Ihre historischen Metriken liegt, wird ein Alarm ausgelöst. Entweder eine untere Grenze, eine obere Grenze oder beide müssen festgelegt werden.
-
Untere Grenze des t-Test-Schwellenwerts
- Eine untere Grenze des t-Test Schwellenwerts kann eine positive Dezimalzahl zwischen
0.5
und1.0
sein.0.5
repräsentiert den Durchschnitt und1.0
repräsentiert alle möglichen linksseitigen Werte (-∞). Sie wird verwendet, wenn ein kleinerer Wert eine Leistungsverschlechterung anzeigen würde. - Zum Beispiel, wenn Sie einen t-Test Schwellenwert mit einer unteren Grenze von
0.977
verwenden und Sie hatten25
historische Metriken mit einem Durchschnitt von100
und einer Standardabweichung von10
, dann wäre das untere Grenzlimit78.96
und jeder Wert kleiner als78.96
würde einen Alarm auslösen.
- Eine untere Grenze des t-Test Schwellenwerts kann eine positive Dezimalzahl zwischen
-
Obere Grenze des t-Test Schwellenwerts
- Eine obere Grenze des t-Test Schwellenwerts kann jede positive Dezimalzahl zwischen
0.5
und1.0
sein.0.5
repräsentiert den Durchschnitt und1.0
repräsentiert alle möglichen rechtsseitigen Werte (∞). Sie wird verwendet, wenn ein größerer Wert eine Leistungsminderung anzeigen würde. - Zum Beispiel, wenn Sie einen t-Test Schwellenwert mit einer oberen Grenze von
0.977
verwenden und Sie hatten25
historische Metriken mit einem Durchschnitt von100
und einer Standardabweichung von10
, dann wäre das obere Grenzlimit121.04
und jeder Wert größer als121.04
würde einen Alarm auslösen.
- Eine obere Grenze des t-Test Schwellenwerts kann jede positive Dezimalzahl zwischen
Log-Normal-Verteilungs-Schwellenwerte
Ein Log-Normal-Verteilungs-Schwellenwert misst, wie wahrscheinlich es ist, dass eine neue Metrik über oder unter dem zentralen Wert Ihrer historischen Metriken liegt, unter Verwendung einer Log-Normal-Verteilung.
Log-Normal-Verteilungs-Schwellenwerte funktionieren am besten, wenn:
- Benchmark-Durchläufe vollständig unabhängig voneinander sind
- Die Anzahl der Iterationen für einen einzelnen Benchmark-Durchlauf weniger als 10% der historischen Metriken beträgt
- Alle Daten positiv sind (der natürliche Logarithmus einer negativen Zahl ist
undefined
)
Bei Log-Normal-Verteilungs-Schwellenwerten wird die Wahrscheinlichkeit als dezimale Prozentsatz angegeben. Wenn eine neue Metrik unter einem bestimmten prozentualen Anteil auf der linken Seite (Untere Grenze) oder über einem bestimmten prozentualen Anteil auf der rechten Seite (Obere Grenze) Ihrer historischen Metriken liegt, wird ein Alarm ausgelöst. Es muss entweder eine untere Grenze, eine obere Grenze oder beide festgelegt werden.
-
Log-Normal-Verteilungs-Schwellenwert Untere Grenze
- Eine untere Grenze für den Log-Normal-Verteilungs-Schwellenwert kann jede positive Dezimalzahl zwischen
0.5
und1.0
sein.0.5
stellt den zentralen Standort dar und1.0
repräsentiert alle möglichen Werte auf der linken Seite (-∞). Es wird verwendet, wenn ein kleinerer Wert eine Leistungsverschlechterung anzeigen würde. - Wenn Sie beispielsweise einen Log-Normal-Verteilungs-Schwellenwert mit einer unteren Grenze von
0.977
verwendet haben und Sie hatten25
historische Metriken um100
zentriert und einen früheren Ausreißer bei200
, wäre die Untere Grenzgrenze71.20
und jeder Wert kleiner als71.20
würde einen Alarm auslösen.
- Eine untere Grenze für den Log-Normal-Verteilungs-Schwellenwert kann jede positive Dezimalzahl zwischen
-
Log-Normal-Verteilungs-Schwellenwert Obere Grenze
- Eine obere Grenze für den Log-Normal-Verteilungs-Schwellenwert kann jede positive Dezimalzahl zwischen
0.5
und1.0
sein.0.5
stellt den zentralen Standort dar und1.0
repräsentiert alle möglichen Werte auf der rechten Seite (∞). Es wird verwendet, wenn ein größerer Wert eine Leistungsverschlechterung anzeigen würde. - Wenn Sie beispielsweise einen Log-Normal-Verteilungs-Schwellenwert mit einer oberen Grenze von
0.977
verwendet haben und Sie hatten25
historische Metriken um100
zentriert und einen früheren Ausreißer bei200
, wäre die Obere Grenzgrenze134.18
und jeder Wert größer als134.18
würde einen Alarm auslösen.
- Eine obere Grenze für den Log-Normal-Verteilungs-Schwellenwert kann jede positive Dezimalzahl zwischen
Schwellenwerte des Interquartilsbereichs
Ein Schwellenwert des Interquartilsbereichs misst, wie viele Vielfache des Interquartilsbereichs (IQR) eine neue Metrik über oder unter dem Median Ihrer historischen Metriken liegt. Wenn eine neue Metrik unterhalb eines bestimmten Vielfachen des IQR vom Median (Untere Grenze) oder oberhalb eines bestimmten Vielfachen des IQR vom Median (Obere Grenze) Ihrer historischen Metriken liegt, wird ein Alarm ausgelöst. Entweder eine Untere Grenze, Obere Grenze, oder beides muss eingestellt werden.
-
Untere Grenze des Schwellenwerts des Interquartilsbereichs
- Eine Untere Grenze des Schwellenwerts des Interquartilsbereichs kann ein beliebiger Multiplikator sein, der größer oder gleich Null ist (z.B.: benutzen Sie
2.0
für2x
). Sie wird verwendet, wenn ein kleinerer Wert eine Leistungseinbuße anzeigen würde. - Zum Beispiel, wenn Sie einen Schwellenwert des Interquartilsbereichs mit einer Unteren Grenze von
2.0
eingestellt haben und Ihre historischen Metriken einen Median von100
und einen Interquartilsbereich von10
hatten wäre das Limit der Unteren Grenze80
und jeder Wert unter80
würde einen Alarm auslösen.
- Eine Untere Grenze des Schwellenwerts des Interquartilsbereichs kann ein beliebiger Multiplikator sein, der größer oder gleich Null ist (z.B.: benutzen Sie
-
Obere Grenze des Schwellenwerts des Interquartilsbereichs
- Eine Obere Grenze des Schwellenwerts des Interquartilsbereichs kann ein beliebiger Multiplikator sein, der größer oder gleich Null ist (z.B.: benutzen Sie
2.0
für2x
). Sie wird verwendet, wenn ein höherer Wert eine Leistungseinbuße anzeigen würde. - Zum Beispiel, wenn Sie einen Schwellenwert des Interquartilsbereichs mit einer Oberen Grenze von
2.0
eingestellt haben und Ihre historischen Metriken einen Median von100
und einen Interquartilsbereich von10
hatten wäre das Limit der Oberen Grenze120
und jeder Wert über120
würde einen Alarm auslösen.
- Eine Obere Grenze des Schwellenwerts des Interquartilsbereichs kann ein beliebiger Multiplikator sein, der größer oder gleich Null ist (z.B.: benutzen Sie
Delta Interquartile Range Thresholds
Ein Delta Interquartile Range Threshold misst, um wie viele Vielfache der durchschnittlichen prozentualen Änderung (Δ) Interquartilsabstand (IQR) ein neuer Metric über oder unter dem Median Ihrer historischen Metrics liegt. Wenn ein neuer Metric unterhalb einem bestimmten Vielfachen des ΔIQR vom Median (Untere Grenze) oder oberhalb einem bestimmten Vielfachen des ΔIQR vom Median (Obere Grenze) Ihrer historischen Metrics liegt, wird ein Alarm ausgelöst. Entweder eine Untere Grenze, Obere Grenze oder beides müssen eingestellt sein.
-
Delta Interquartile Range Threshold Untere Grenze
- Eine Delta Interquartile Range Threshold Untere Grenze kann jeder Multiplikator sein, der größer oder gleich Null ist (z.B: nutzen Sie
2.0
für2x
). Sie wird verwendet, wenn ein kleinerer Wert eine Leistungsregression anzeigen würde. - Zum Beispiel, wenn Sie einen Delta Interquartile Range Threshold mit einer Unterer Grenze von
2.0
eingestellt haben und Ihre historischen Metrics hatten einen Median von100
, einen Interquartilabstand von10
und einen durchschnittlichen Delta-Interquartilbereich von0.2
(20%
) wäre das Untere Grenzlimit60
und jeder Wert kleiner als60
würde einen Alarm auslösen.
- Eine Delta Interquartile Range Threshold Untere Grenze kann jeder Multiplikator sein, der größer oder gleich Null ist (z.B: nutzen Sie
-
Delta Interquartile Range Threshold Obere Grenze
- Eine Delta Interquartile Range Threshold Obere Grenze kann jeder Multiplikator sein, der größer oder gleich Null ist (z.B: nutzen Sie
2.0
für2x
). Sie wird verwendet, wenn ein größerer Wert eine Leistungsregression anzeigen würde. - Zum Beispiel, wenn Sie einen Delta Interquartile Range Threshold mit einer Oberer Grenze von
2.0
eingestellt haben und Ihre historischen Metrics hatten einen Median von100
, einen Interquartilabstand von10
und einen durchschnittlichen Delta-Interquartilbereich von0.2
(20%
) wäre das Obere Grenzlimit140
und jeder Wert größer als140
würde einen Alarm auslösen.
- Eine Delta Interquartile Range Threshold Obere Grenze kann jeder Multiplikator sein, der größer oder gleich Null ist (z.B: nutzen Sie
🐰 Herzlichen Glückwunsch! Sie haben alles über Schwellenwerte & Alarme gelernt! 🎉