15. Echtzeitergebnisse ¶
Seit JMeter 2.13 können Sie Echtzeitergebnisse erhalten, die über den
Backend Listener an ein Backend gesendet werden, wobei potenziell jedes Backend (JDBC, JMS, Webservice, …) verwendet werden kann, indem Sie eine Klasse bereitstellen, die AbstractBackendListenerClient implementiert .
JMeter wird geliefert mit:
- ein GraphiteBackendListenerClient, mit dem Sie Metriken an ein Graphite-Backend senden können.
Diese Funktion bietet:- Live-Ergebnisse
- Schöne Grafiken für Metriken
- Möglichkeit, 2 oder mehr Belastungstests zu vergleichen
- Das Speichern von Überwachungsdaten, solange JMeter im selben Backend resultiert
- …
- ein in JMeter 3.2 eingeführter InfluxDBBackendListenerClient, mit dem Sie Metriken über UDP- oder HTTP-Protokolle an ein InfluxDB-Backend senden können. Diese Funktion bietet:
- Live-Ergebnisse
- Schöne Grafiken für Metriken
- Möglichkeit, 2 oder mehr Belastungstests zu vergleichen
- Möglichkeit, Anmerkungen zu Diagrammen hinzuzufügen
- Das Speichern von Überwachungsdaten, solange JMeter im selben Backend resultiert
- …
- InfluxDB-Setup für InfluxDBBackendListenerClient
- InfluxDB-Setup für GraphiteBackendListenerClient
- Grafana
- Graphit
15.1 Offengelegte Metriken ¶
15.1.1 Metriken zu Threads/virtuellen Benutzern ¶
Thread-Metriken sind die folgenden:
- <rootMetricsPrefix>test.minAT
- Min. aktive Threads
- <rootMetricsPrefix>test.maxAT
- Max. aktive Threads
- <rootMetricsPrefix>test.meanAT
- Mittlere aktive Threads
- <rootMetricsPrefix>test.startedT
- Gestartete Threads
- <rootMetricsPrefix>test.endedT
- Fertige Fäden
15.1.2 Metriken zu Reaktionszeiten ¶
Antwortbezogene Metriken sind die folgenden:
- <rootMetricsPrefix><samplername>.ok.count
- Anzahl der erfolgreichen Antworten für den Namen des Probenehmers
- <rootMetricsPrefix><SamplerName>.h.count
- Servertreffer pro Sekunde, diese Metrik kumuliert Sample-Ergebnis und Sub-Ergebnisse (bei Verwendung von Transaction Controller sollte „Generate parent sampler“ deaktiviert sein)
- <rootMetricsPrefix><samplername>.ok.min
- Min. Antwortzeit für erfolgreiche Antworten des Sampler-Namens
- <rootMetricsPrefix><samplername>.ok.max
- Maximale Antwortzeit für erfolgreiche Antworten des Sampler-Namens
- <rootMetricsPrefix><SamplerName>.ok.avg
- Durchschnittliche Antwortzeit für erfolgreiche Antworten des Sampler-Namens.
- <rootMetricsPrefix><SamplerName>.ok.pct<Perzentilwert>
- Perzentil, das für erfolgreiche Antworten des Namens des Probenehmers berechnet wird. Für jeden berechneten Wert gibt es eine Metrik.
- <rootMetricsPrefix><samplerName>.ko.count
- Anzahl der fehlgeschlagenen Antworten für den Namen des Probenehmers
- <rootMetricsPrefix><samplername>.ko.min
- Min. Antwortzeit für fehlgeschlagene Antworten des Sampler-Namens
- <rootMetricsPrefix><SamplerName>.ko.max
- Maximale Antwortzeit für fehlgeschlagene Antworten des Sampler-Namens
- <rootMetricsPrefix><samplername>.ko.avg
- Durchschnittliche Antwortzeit für fehlgeschlagene Antworten des Namens des Probenehmers.
- <rootMetricsPrefix><SamplerName>.ko.pct<Perzentilwert>
- Perzentil, das für fehlgeschlagene Antworten des Namens der Probenehmer berechnet wird. Für jeden berechneten Wert gibt es eine Metrik.
- <rootMetricsPrefix><samplerName>.a.count
- Anzahl der Antworten für den Sampler-Namen (Summe aus ok.count und ko.count)
- <rootMetricsPrefix><samplerName>.sb.bytes
- Gesendete Bytes
- <rootMetricsPrefix><samplerName>.rb.bytes
- Empfangene Bytes
- <rootMetricsPrefix><samplerName>.a.min
- Min. Antwortzeit für Antworten des Sampler-Namens (Min. von ok.count und ko.count)
- <rootMetricsPrefix><samplerName>.a.max
- Maximale Antwortzeit für Antworten des Sampler-Namens (Maximum von ok.count und ko.count)
- <rootMetricsPrefix><samplerName>.a.avg
- Durchschnittliche Antwortzeit für Antworten des Sampler-Namens (Durchschnitt von ok.count und ko.count)
- <rootMetricsPrefix><SamplerName>.a.pct<Perzentilwert>
- Perzentil berechnet für Antworten des Namens des Probenehmers. Für jeden berechneten Wert gibt es eine Metrik. (errechnet aus den Summen für Gut- und Fehlproben)
Die Standardeinstellung für die Perzentile im Backend Listener ist "90;95;99", dh die 3 Perzentile 90 %, 95 % und 99 %.
Die Graphite-Benennungshierarchie verwendet Punkte (".") zum Trennen von Elementen. Dies könnte mit dezimalen Perzentilwerten verwechselt werden. JMeter konvertiert solche Werte und ersetzt den Punkt (".") durch den Unterstrich ("-"). Beispiel: „ 99,9 “ wird zu „ 99_9 “ .
Standardmäßig sendet JMeter Metriken für alle Sampler, die unter dem samplerName „ all “ angesammelt sind. Wenn der Back-End-Listener samplersList konfiguriert ist, sendet JMeter auch die Metriken für die übereinstimmenden Beispielnamen, es sei denn, summaryOnly=true
15.2 JMeter-Konfiguration ¶
Damit JMeter Metriken an das Backend sendet, fügen Sie einen BackendListener mit dem InfluxDBBackendListenerClient hinzu.
15.3 InfluxDB-Konfiguration ¶
Führen Sie einen der folgenden Schritte aus, um vom Back-End-Listener gesendete Daten zu speichern:
- Erstellen Sie für die Einrichtung von InfluxDB 2 einen jmeter- Bucket
- Erstellen Sie für die Einrichtung von InfluxDB 1.x eine jmeter- Datenbank mit der Influx-CLI
15.3.1 InfluxDB-Setup für InfluxDBBackendListenerClient ¶
InfluxDB ist eine verteilte Open-Source-Zeitreihendatenbank, die das einfache Speichern von Metriken ermöglicht. Die Installation und Konfiguration ist sehr einfach, lesen Sie die InfluxDB-Dokumentation für weitere Details .
InfluxDB-Daten können einfach in einem Browser über Grafana angezeigt werden .
15.3.2 InfluxDB 2-Setup für InfluxDBBackendListenerClient ¶
Die Konfiguration sollte den Parameter influxdbToken sowie Bucket und org als Abfrageparameter in der influxdbUrl angeben . Weitere Informationen finden Sie in der InfluxDB v2-API .
So rufen Sie die erforderlichen Informationen in der InfluxDB-Benutzeroberfläche ab:
15.4 Grafana-Konfiguration ¶
Grafana installieren
Lesen Sie die Dokumentation für weitere Details. Fügen Sie die Datenquelle hinzu
15.5 Graphit ¶
HILFE WILLKOMMEN für diesen Abschnitt, siehe Beitragende Dokumentation