Apache JMeter - User's Manual: Live Statistics

Index | Next | Prev
15. Real-time results
> Since JMeter 2.13 you can get real-time results sent to a backend through the Backend Listener using potentially any backend (JDBC, JMS, Webservice, …) by providing a class which implements AbstractBackendListenerClient. JMeter ships with: a GraphiteBackendListenerClient which allows you to send metrics to a Graphite Backend. This feature provides: Live results Nice graphs for metrics Ability to compare 2 or more load tests Storing monitoring data as long as JMeter results in the same backend … an InfluxDBBackendListenerClient introduced in JMeter 3.2 which allows you to send metrics to an InfluxDB Backend using UDP or HTTP protocols This feature provides: Live results Nice graphs for metrics Ability to compare 2 or more load tests Ability to add annotations to graphs Storing monitoring data as long as JMeter results in the same backend … In this document we will present the configuration setup to graph and historize the data in different backends: InfluxDB setup for InfluxDBBackendListenerClient InfluxDB setup for GraphiteBackendListenerClient Grafana Graphite
> 15.1 Metrics exposed
> > 15.1.1 Thread/Virtual Users metrics
> > Thread metrics are the following: `<rootMetricsPrefix>test.minAT` Min active threads `<rootMetricsPrefix>test.maxAT` Max active threads `<rootMetricsPrefix>test.meanAT` Mean active threads `<rootMetricsPrefix>test.startedT` Started threads `<rootMetricsPrefix>test.endedT` Finished threads
> > 15.1.2 Response times metrics
> > Response related metrics are the following: `<rootMetricsPrefix><samplerName>.ok.count` Number of successful responses for sampler name `<rootMetricsPrefix><samplerName>.h.count` Server hits per seconds, this metric cumulates Sample Result and Sub results (if using Transaction Controller, "Generate parent sampler" should be unchecked) `<rootMetricsPrefix><samplerName>.ok.min` Min response time for successful responses of sampler name `<rootMetricsPrefix><samplerName>.ok.max` Max response time for successful responses of sampler name `<rootMetricsPrefix><samplerName>.ok.avg` Average response time for successful responses of sampler name. `<rootMetricsPrefix><samplerName>.ok.pct<percentileValue>` Percentile computed for successful responses of sampler name. There will be one metric for each calculated value. `<rootMetricsPrefix><samplerName>.ko.count` Number of failed responses for sampler name `<rootMetricsPrefix><samplerName>.ko.min` Min response time for failed responses of sampler name `<rootMetricsPrefix><samplerName>.ko.max` Max response time for failed responses of sampler name `<rootMetricsPrefix><samplerName>.ko.avg` Average response time for failed responses of sampler name. `<rootMetricsPrefix><samplerName>.ko.pct<percentileValue>` Percentile computed for failed responses of sampler name. There will be one metric for each calculated value. `<rootMetricsPrefix><samplerName>.a.count` Number of responses for sampler name (sum of ok.count and ko.count) `<rootMetricsPrefix><samplerName>.sb.bytes` Sent Bytes `<rootMetricsPrefix><samplerName>.rb.bytes` Received Bytes `<rootMetricsPrefix><samplerName>.a.min` Min response time for responses of sampler name (min of ok.count and ko.count) `<rootMetricsPrefix><samplerName>.a.max` Max response time for responses of sampler name (max of ok.count and ko.count) `<rootMetricsPrefix><samplerName>.a.avg` Average response time for responses of sampler name (avg of ok.count and ko.count) `<rootMetricsPrefix><samplerName>.a.pct<percentileValue>` Percentile computed for responses of sampler name. There will be one metric for each calculated value. (calculated on the totals for OK and failed samples) The default `percentiles` setting on the Backend Listener is "90;95;99", i.e. the 3 percentiles 90%, 95% and 99%. The Graphite naming hierarchy uses dot (".") to separate elements. This could be confused with decimal percentile values. JMeter converts any such values, replacing dot (".") with underscore ("-"). For example, "`99.9`" becomes "`99_9`" By default JMeter sends metrics for all samplers accumulated under the samplerName "`all`". If the Backend Listener `samplersList` is configured, then JMeter also sends the metrics for the matching sample names unless `summaryOnly=true`
> 15.2 JMeter configuration
> > To make JMeter send metrics to backend add a BackendListener using the InfluxDBBackendListenerClient.
> > InfluxDB configuration
> 15.3 InfluxDB configuration
> > Do one of the following to store data sent by the Backend Listener: For InfluxDB 2 setup, create a `jmeter` bucket For InfluxDB 1.x setup, create a `jmeter` database using the Influx CLI You can also use the HTTP API i.e. `curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE jmeter"`
> > 15.3.1 InfluxDB setup for InfluxDBBackendListenerClient
> > InfluxDB is an open-source, distributed, time-series database that allows to easily store metrics. Installation and configuration is very easy, read this for more details InfluxDB documentation. InfluxDB data can be easily viewed in a browser through Grafana.
> > 15.3.2 InfluxDB 2 setup for InfluxDBBackendListenerClient
> > > The configuration should specify the `influxdbToken` parameter and also specify `bucket` and `org` as query parameters in the `influxdbUrl`. See the InfluxDB v2 API for more details. How to retrieve the required information in the InfluxDB UI: influxdbToken bucket org
> > > InfluxDB 2 configuration
> 15.4 Grafana configuration
> > Installing grafana Read documentation for more details. Add the datasource
> > Grafana dashboard
> 15.5 Graphite Configuration
> > To make JMeter send metrics to backend, add a BackendListener using the GraphiteBackendListenerClient. GraphiteBackendListenerClient section will help you do the configuration.
> > Graphite configuration
> 15.5.1 Graphite Sender
> > Two types of Senders are available. TextGraphiteMetricsSender, PickleGraphiteMetricsSender For plaintext protocol, set graphiteMetricsSender parameter to `org.apache.jmeter.visualizers.backend.graphite.TextGraphiteMetricsSender` For pickle protocol, set graphiteMetricsSender parameter to `org.apache.jmeter.visualizers.backend.graphite.PickleGraphiteMetricsSender` To send large amounts of data, use the Pickle sender. It is a more efficient transmission method compared to textplain. Read the Graphite documentation for more details.
> > Graphite pickle sender
Index | Next | Prev
Copyright © 1999-2023, Apache Software Foundation | $Id: realtime-results.xml 1457581 2013-03-17 22:58:08Z sebb $
Apache, Apache JMeter, JMeter, the Apache feather, and the Apache JMeter logo are trademarks of the Apache Software Foundation.