Skip to content

Commit 14e5d02

Browse files
2.5.2 - Fixed #36
1 parent a5b7481 commit 14e5d02

File tree

5 files changed

+27
-5
lines changed

5 files changed

+27
-5
lines changed

pom.xml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>io.github.delirius325</groupId>
55
<artifactId>jmeter.backendlistener.elasticsearch</artifactId>
6-
<version>2.5.1</version>
6+
<version>2.5.2</version>
77
<packaging>jar</packaging>
88

99
<name>jmeter.backendlistener.elasticsearch</name>
@@ -42,11 +42,16 @@
4242
<junit.vintage.version>${junit.version}.0</junit.vintage.version>
4343
<junit.jupiter.version>5.0.0</junit.jupiter.version>
4444
<junit.platform.version>1.0.0</junit.platform.version>
45-
<org.apache.jmeter.version>4.0</org.apache.jmeter.version>
45+
<org.apache.jmeter.version>5.0</org.apache.jmeter.version>
4646
<org.apache.commons>3.7</org.apache.commons>
4747
<org.elasticsearch.client>6.4.0</org.elasticsearch.client>
4848
</properties>
4949
<dependencies>
50+
<dependency>
51+
<groupId>org.json</groupId>
52+
<artifactId>json</artifactId>
53+
<version>20180813</version>
54+
</dependency>
5055
<dependency>
5156
<groupId>com.google.code.gson</groupId>
5257
<artifactId>gson</artifactId>

src/main/java/io/github/delirius325/jmeter/backendlistener/elasticsearch/ElasticSearchMetric.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ private void parseHeadersAsJsonProps(boolean allReqHeaders, boolean allResHeader
197197
for(String[] lines : headersArrayList) {
198198
for(int i=0; i < lines.length; i++) {
199199
String[] header = lines[i].split(":");
200+
200201
// if not all req headers and header contains special X-tag
201202
if(!this.allReqHeaders && header[0].startsWith("X-es-backend")) {
202203
this.json.put(header[0].replaceAll("es-", "").trim(), header[1].trim());

src/main/java/io/github/delirius325/jmeter/backendlistener/elasticsearch/ElasticSearchMetricSender.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,24 @@
33
import org.apache.http.HttpStatus;
44
import org.apache.http.entity.ContentType;
55
import org.apache.http.nio.entity.NStringEntity;
6+
import org.apache.http.util.EntityUtils;
7+
import org.apache.jmeter.threads.JMeterContextService;
68
import org.elasticsearch.client.Request;
79
import org.elasticsearch.client.RequestOptions;
810
import org.elasticsearch.client.Response;
911
import org.elasticsearch.client.RestClient;
12+
13+
import org.json.JSONArray;
14+
import org.json.JSONObject;
1015
import org.slf4j.Logger;
1116
import org.slf4j.LoggerFactory;
1217

1318
import java.io.IOException;
1419

1520
import java.util.*;
1621

22+
import static io.github.delirius325.jmeter.backendlistener.elasticsearch.ElasticSearchRequests.SEND_BULK_REQUEST;
23+
1724
public class ElasticSearchMetricSender {
1825
private static final Logger logger = LoggerFactory.getLogger(ElasticSearchMetricSender.class);
1926

@@ -59,7 +66,7 @@ public ElasticSearchMetricSender(RestClient cli, String index, String user, Stri
5966
*/
6067
public void createIndex() {
6168
try {
62-
this.client.performRequest("PUT", "/"+ this.esIndex);
69+
this.client.performRequest(new Request("PUT", "/" + this.esIndex));
6370
} catch (Exception e) {
6471
logger.info("Index already exists!");
6572
}
@@ -72,7 +79,7 @@ public void createIndex() {
7279
public void sendRequest() {
7380
Request request = new Request("POST", "/" + this.esIndex + "/SampleResult/_bulk");
7481
StringBuilder bulkRequestBody = new StringBuilder();
75-
String actionMetaData = String.format("{ \"index\" : { \"_index\" : \"%s\", \"_type\" : \"%s\" } }%n", this.esIndex, "SampleResult");
82+
String actionMetaData = String.format(SEND_BULK_REQUEST, this.esIndex, "SampleResult");
7683

7784
for (String metric : this.metricList) {
7885
bulkRequestBody.append(actionMetaData);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package io.github.delirius325.jmeter.backendlistener.elasticsearch;
2+
3+
public class ElasticSearchRequests {
4+
/**
5+
* Request to send metrics (JMeter/Percentiles) as ElasticSearch documents
6+
*/
7+
public static String SEND_BULK_REQUEST = "{ \"index\" : { \"_index\" : \"%s\", \"_type\" : \"%s\" } }%n";
8+
}

src/main/java/io/github/delirius325/jmeter/backendlistener/elasticsearch/ElasticsearchBackendClient.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ public void onFailure(Node node) {
8787
if(filterArray.length >= 1 && !filterArray[0].trim().equals("")) {
8888
for (String filter : filterArray) {
8989
this.filters.add(filter.toLowerCase().trim());
90+
logger.info("Added filter: " + filter.toLowerCase().trim());
9091
}
9192
}
9293

@@ -157,7 +158,7 @@ private boolean validateSample(BackendListenerContext context, SampleResult sr)
157158
String sampleLabel = sr.getSampleLabel().toLowerCase().trim();
158159

159160
if(this.filters.size() == 0 || this.filters.contains(sampleLabel)) {
160-
validSample = (context.getParameter(ES_TEST_MODE).trim().equals("error") && sr.isSuccessful()) ? false : true;
161+
validSample = !(context.getParameter(ES_TEST_MODE).trim().equals("error") && sr.isSuccessful());
161162
}
162163

163164
return validSample;

0 commit comments

Comments
 (0)