/jmeter-elasticsearch-backend-listener

JMeter plugin that lets you send sample results to an ElasticSearch engine to enable live monitoring of load tests.

Primary LanguageJavaMIT LicenseMIT

Codacy Badge Build Status

Overview

Description

JMeter ElasticSearch Backend Listener is a JMeter plugin enabling you to send test results to an ElasticSearch engine. It is meant as an alternative live-monitoring tool to the built-in "InfluxDB" backend listener of JMeter.

Features

  • ElasticSearch low-level REST client
    • Using the low-level client makes the plugin compatible with any ElasticSearch version
  • X-Pack Authentication!
    • Just supply your crendentials in the specified fields!
  • Bulk requests
    • By making bulk requests, there are practically no impacts on the performance of the tests themselves.
  • Filters
    • Only send the samples you want by using Filters! Simply type them as follows in the field es.sample.filter : filter1;filter2;filter3 or sampleLabel_must_contain_this.
    • You can also choose to exclude certain samplers; !!exclude_this;filter1;filter2
  • Specific fields ```field1;field2;field3`
    • Specify fields that you want to send to ElasticSearch (possible fields below)
      • AllThreads
      • BodySize
      • Bytes
      • SentBytes
      • ConnectTime
      • ContentType
      • DataType
      • ErrorCount
      • GrpThreads
      • IdleTime
      • Latency
      • ResponseTime
      • SampleCount
      • SampleLabel
      • ThreadName
      • URL
      • ResponseCode
      • TestStartTime
      • SampleStartTime
      • SampleEndTime
      • Timestamp
      • InjectorHostname
  • Verbose, semi-verbose, error only, and quiet mode
    • debug : Send request/response information of all samplers (headers, body, etc.)
    • info : Sends all samplers to the ElasticSearch engine, but only sends the headers, body info for the failed samplers.
    • quiet : Only sends the response time, bytes, and other metrics
    • error : Only sends the failing samplers to the ElasticSearch engine (Along with their headers and body information).
  • Use either Kibana or Grafana to vizualize your results!
  • Continuous Integration support - Build comparison!
  • Send JMeter variables to ElasticSearch! Refer to this for more info!
  • New AWS ES parameters introducted in 2.6.0 version which leverage Role based authentication to access Elastic Search managed hosting on AWS
  • If your ES cluster is using a self signed certificate, you can set es.ssl.verificationMode to none to skip the hostname verification and cluster certificate validation.

Maven

<dependency>
  <groupId>io.github.delirius325</groupId>
  <artifactId>jmeter.backendlistener.elasticsearch</artifactId>
  <version>2.6.10-SNAPSHOT</version>
</dependency>

Contributing

Feel free to contribute by branching and making pull requests, or simply by suggesting ideas through the "Issues" tab.

Packaging and testing your newly added code

Execute below mvn command. Make sure JAVA_HOME is set properly

mvn package

Move the resulting JAR to your JMETER_HOME/lib/ext.

Screenshots

Configuration

screnshot1

Sample Grafana dashboard

screnshot1

For more info

For more information, here's a little documentation.