Apdex-Score: was er bedeutet und wie man ihn berechnet
6 Min. Lesezeit
Ein Apdex-Score ist eine Zahl zwischen 0 und 1, die angibt, welcher Anteil der Anfragen schnell genug für die Wartenden war. Sie wählen eine Zielzeit T: Antworten bis T zählen voll, Antworten bis zum Vierfachen von T zählen halb, langsamere zählen null. Ein Ergebnis von 1 heißt, jede Anfrage hat das Ziel erreicht, 0 heißt, jede war zu langsam.
| Zone | Antwortzeit | Gewicht im Score |
|---|---|---|
| Zufrieden (satisfied) | bis T | 1 |
| Tolerierend (tolerating) | über T, bis 4T | 0,5 |
| Frustriert (frustrated) | über 4T | 0 |
Die Fakten unten stammen aus der Dokumentation und dem Quellcode der Tools, geprüft am 19. Oktober 2026.
Wie berechnet man einen Apdex-Score?
Addieren Sie die zufriedenen Anfragen und die Hälfte der tolerierenden und teilen Sie durch alle Anfragen. Das Ergebnis liegt immer zwischen 0 und 1.
Apdex(T) = (satisfied + tolerating / 2) / total
Die Apdex-Dokumentation von New Relic rechnet ein Beispiel mit T = 500 ms durch: Von 200 Anfragen waren 170 innerhalb von 500 ms fertig, 20 brauchten zwischen 500 ms und 2 Sekunden, und 10 schlugen fehl oder dauerten länger. Das ergibt (170 + 20 / 2) / 200 = 0,90 (geprüft am 19. Oktober 2026).
Ein zweites Beispiel zeigt, warum der Score im Lasttest nützlich ist. Ein Lauf schickt 10.000 Anfragen mit T = 300 ms: 8.200 sind innerhalb von 300 ms fertig, 1.300 zwischen 300 ms und 1,2 Sekunden, 500 dauern länger. Der Apdex beträgt (8.200 + 650) / 10.000 = 0,885. Derselbe Lauf kann leicht einen Durchschnitt von 280 ms melden, der für sich gut aussieht und die 500 Anfragen über einer Sekunde verbirgt.
Woher kommt Apdex?
Apdex, kurz für Application Performance Index, ist ein offener Standard einer Gruppe von Unternehmen, der Apdex Alliance. Peter Sevcik von NetForecast hat die Alliance 2004 gegründet.
Der Wikipedia-Artikel zu Apdex zitiert Sevciks Aufsatz von 2005 und nennt die 4T-Regel. Die Apdex Users Group schreibt inzwischen, die Regeln für die Schwellen T und F seien „flexibel geworden“ (geprüft am 19. Oktober 2026), und die Tools nutzen diese Freiheit.
Wie berechnen JMeter, Artillery und LoadFocus den Score?
Alle drei starten mit T = 500 ms. Sie unterscheiden sich darin, wo die tolerierende Zone endet und was mit fehlgeschlagenen Anfragen passiert, daher kann derselbe Lauf drei leicht verschiedene Werte ergeben.
| Tool | Standard-T | Tolerierend bis | Fehlgeschlagene Anfragen |
|---|---|---|---|
| JMeter-HTML-Dashboard | 500 ms | 1.500 ms | zählen als frustriert |
Artillery-Plugin apdex | 500 ms | 4T (2.000 ms) | nur Antworten werden bewertet |
| LoadFocus-Ergebnisseite | 500 ms, fest | 4T (2.000 ms) | nach Antwortzeit bewertet |
| New Relic APM | pro App einstellbar | 4T | Serverfehler sind frustriert |
JMeter. Der Dashboard-Bericht enthält eine APDEX-Tabelle pro Transaktion. Die Standardwerte sind jmeter.reportgenerator.apdex_satisfied_threshold=500 und apdex_tolerated_threshold=1500, die tolerierende Zone endet also bei 3T, solange Sie nichts ändern, und apdex_per_transaction setzt eigene Schwellen pro Sampler. In ApdexSummaryConsumer zählt ein fehlgeschlagenes Sample zur Gesamtzahl und nie zu den zufriedenen oder tolerierenden, jeder Fehler drückt also den Score (geprüft am 19. Oktober 2026).
Artillery. Das Apdex-Plugin funktioniert nur mit der HTTP-Engine und meldet die Zähler apdex.satisfied, apdex.tolerated und apdex.frustrated. Sein Quellcode in artillery-plugin-apdex 1.24.0 bewertet jede Antwort nach ihrer Gesamtzeit gegen T und 4T und gibt den Score mit einer Bezeichnung aus: excellent ab 0,94, good ab 0,85, fair ab 0,70, poor ab 0,49, darunter unacceptable. Eine Anfrage, die nie eine Antwort erhält, wird nie bewertet (geprüft am 19. Oktober 2026). Unser Artillery-Review behandelt das Tool selbst.
LoadFocus, der Herausgeber dieser Website, zeigt den Apdex-Score im Insights-Tab eines Lasttest-Ergebnisses neben einem Antwortzeit-Histogramm. T ist fest auf 500 ms eingestellt, die tolerierende Zone endet bei 2.000 ms, und T lässt sich nicht ändern. Jedes Sample wird nach seiner Antwortzeit eingeordnet, und die Anteile zufrieden, tolerierend und frustriert stehen neben dem Score.
Wie wählt man die Schwelle T?
Wählen Sie T danach, was die Nutzer dieser Seite oder dieses Endpunkts erwarten, und setzen Sie T pro Transaktion, wenn Ihr Tool das erlaubt. Ein einziges T für eine ganze Anwendung vermischt einen schnellen Suchendpunkt und einen langsamen Berichtsexport zu einer Zahl.
Ein paar praktische Regeln:
- Starten Sie mit einem echten Ziel. Wenn Sie schon ein Latenzziel wie „95 % der Checkout-Aufrufe unter 400 ms“ haben, sorgt T = 400 ms dafür, dass Apdex und Ziel dasselbe erzählen.
- Halten Sie T zwischen Läufen gleich. Ein Apdex ist nur mit einem Apdex bei gleichem T vergleichbar. Schreiben Sie Apdex(0.4) oder „Apdex bei T = 400 ms“, damit niemand über Schwellen hinweg vergleicht.
- Gleichen Sie auch die tolerierende Zone an. Der JMeter-Standard endet bei 3T, die anderen bei 4T. Bevor Sie einen JMeter-Bericht mit einem anderen Tool vergleichen, setzen Sie
apdex_tolerated_thresholdauf das Vierfache von T. - Stellen Sie T nicht so ein, dass ein Release besteht. Wer T nach einem schlechten Lauf verschiebt, ändert das Lineal, und der beobachtete Trend ist weg.
Was ist ein guter Apdex-Score?
Das Artillery-Plugin nennt 0,94 und mehr excellent, 0,85 bis 0,94 good und alles unter 0,70 poor oder schlechter. Diese Bezeichnungen sagen nur etwas aus, wenn T ehrlich gewählt wurde.
Ein Apdex von 0,95 bei T = 2 Sekunden kann einen langsameren Dienst beschreiben als 0,80 bei T = 200 ms. Wenn Sie ein Release-Gate festlegen, schreiben Sie Schwelle und Score zusammen („Apdex(0.5) mindestens 0,9“) und prüfen Sie ihn neben einem Perzentil-Limit, denn beide fangen unterschiedliche Probleme ab.
Was verbirgt Apdex?
Er presst die ganze Antwortzeitverteilung in drei Kategorien und kann daher nicht sagen, wie langsam die frustrierten Anfragen waren. Eine Anfrage mit 2,1 Sekunden und eine mit 30 Sekunden senken den Score um genau denselben Betrag.
Deshalb wirkt er am besten neben anderen Zahlen:
- Perzentile zeigen, wie langsam die langsamen Anfragen sind. Unser Leitfaden zur Tail-Latenz erklärt, warum das 99. Perzentil zählt, sobald eine Seite mehrere Dienste aufruft.
- Die Fehlerrate erfasst Fehler, die Ihr Tool vielleicht nicht bewertet. Artillery bewertet Anfragen ohne Antwort nie, New Relic zählt Serverfehler als frustriert, lesen Sie die Fehlerzahl also separat.
- Die Stichprobengröße zählt: New Relic weist darauf hin, dass der Score unter etwa 100 Anfragen pro Minute instabil ist.
- Messverzerrung gibt es auch. Ein Lastgenerator, der auf langsame Antworten wartet, schickt in langsamen Phasen weniger Anfragen, und der Apdex sieht besser aus als die Wirklichkeit; siehe Coordinated Omission.
Wie setzt man Apdex im Lasttest ein?
Nutzen Sie ihn als Zusammenfassung für Leute, die kein Histogramm lesen, und treffen Sie die Pass/Fail-Entscheidung über ausdrückliche Limits.
Eine Routine, die funktioniert:
- Setzen Sie T pro wichtiger Transaktion aus Ihrem Latenzziel.
- Führen Sie den Test aus und notieren Sie den Apdex bei diesem T, dazu das 95. und 99. Perzentil und die Fehlerrate.
- Vergleichen Sie den Apdex mit dem vorigen Lauf beim gleichen T. Ein Rückgang von 0,93 auf 0,86 ist auch für Leute außerhalb des Teams ein klares Signal.
- Lassen Sie den Build an Perzentil- und Fehlerlimits scheitern, wie in unserem Leitfaden zu Pass/Fail-Kriterien für Lasttests beschrieben, und berichten Sie den Apdex daneben.
FAQ
Ist ein höherer Apdex-Score besser? Ja. 1,0 heißt, jede Anfrage war innerhalb von T fertig, und 0 heißt, jede Anfrage lag über der tolerierbaren Grenze oder wurde als frustriert gezählt.
Welche Apdex-Schwelle nutzt JMeter standardmäßig?
Das HTML-Dashboard nutzt 500 ms für zufrieden und 1.500 ms für toleriert. Ändern Sie die Werte mit jmeter.reportgenerator.apdex_satisfied_threshold und apdex_tolerated_threshold.
Bezieht Apdex Fehler ein? Das hängt vom Tool ab. JMeter zählt fehlgeschlagene Samples als frustriert und New Relic Serverfehler ebenso, während das Artillery-Plugin nur Anfragen bewertet, die eine Antwort erhalten haben.
Kann man Apdex-Scores aus zwei Tools vergleichen? Nur wenn T, die tolerierbare Grenze und der Umgang mit Fehlern übereinstimmen. Sonst vergleichen Sie besser die zugrunde liegenden Perzentile und Fehlerraten.
Weiterlesen
- Tail-Latenz: was sie ist und wie man sie misst
- Pass/Fail-Kriterien für Lasttests: so legen Sie sie fest
- Coordinated Omission: was es ist und wie man es vermeidet
- Durchsatz vs. Latenz: wie sie unter Last zusammenhängen
- Artillery-Lasttests: das Node.js-Tool im Überblick
- SLO vs. SLA: der Unterschied, SLIs und Fehlerbudgets
Die technischen Aussagen in diesem Artikel wurden nicht unabhängig geprüft.