Skip to content

Commit 7c96b25

Browse files
Merge branch 'master' into master
2 parents cf91532 + ab295b2 commit 7c96b25

File tree

5 files changed

+39
-33
lines changed

5 files changed

+39
-33
lines changed

README.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,9 @@ JMeter ElasticSearch Backend Listener is a JMeter plugin enabling you to send te
3232
<dependency>
3333
<groupId>io.github.delirius325</groupId>
3434
<artifactId>jmeter.backendlistener.elasticsearch</artifactId>
35-
<version>2.6.1</version>
36-
</dependency>
35+
<version>2.6.2</version>
3736
```
3837

39-
### Supporting the author
40-
[![patreon](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/bePatron?u=17797269)
41-
4238
## Contributing
4339
Feel free to contribute by branching and making pull requests, or simply by suggesting ideas through the "Issues" tab.
4440

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>main.java.io.github.delirius325</groupId>
77
<artifactId>jmeter.backendlistener.elasticsearch</artifactId>
8-
<version>2.6.1ssl</version>
8+
<version>2.6.4-SNAPSHOT</version>
99
<packaging>jar</packaging>
1010

1111
<name>jmeter.backendlistener.elasticsearch</name>
@@ -132,7 +132,7 @@
132132
<dependency>
133133
<groupId>com.fasterxml.jackson.core</groupId>
134134
<artifactId>jackson-databind</artifactId>
135-
<version>2.8.11.3</version>
135+
<version>[2.9.9,)</version>
136136
</dependency>
137137
<dependency>
138138
<groupId>com.amazonaws</groupId>

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,9 @@ public void createIndex() throws IOException {
114114
* sent through the low-level ElasticSearch REST Client.
115115
*/
116116
public void sendRequest() {
117-
Request request = new Request("POST", "/" + this.esIndex + "/SampleResult/_bulk");
117+
Request request = new Request("POST", "/" + this.esIndex + "/_bulk");
118118
StringBuilder bulkRequestBody = new StringBuilder();
119-
String actionMetaData = String.format(SEND_BULK_REQUEST, this.esIndex, "SampleResult");
119+
String actionMetaData = String.format(SEND_BULK_REQUEST, this.esIndex);
120120

121121
for (String metric : this.metricList) {
122122
bulkRequestBody.append(actionMetaData);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ public class ElasticSearchRequests {
44
/**
55
* Request to send metrics (JMeter/Percentiles) as ElasticSearch documents
66
*/
7-
public static String SEND_BULK_REQUEST = "{ \"index\" : { \"_index\" : \"%s\", \"_type\" : \"%s\" } }%n";
7+
public static String SEND_BULK_REQUEST = "{ \"index\" : { \"_index\" : \"%s\" } }%n";
88
}

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

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.apache.jmeter.samplers.SampleResult;
1515
import org.apache.jmeter.util.JMeterUtils;
1616
import org.apache.jmeter.visualizers.backend.AbstractBackendListenerClient;
17+
import org.apache.jmeter.visualizers.backend.BackendListener;
1718
import org.apache.jmeter.visualizers.backend.BackendListenerContext;
1819
import org.elasticsearch.client.Node;
1920
import org.elasticsearch.client.RestClient;
@@ -78,6 +79,24 @@ public class ElasticsearchBackendClient extends AbstractBackendListenerClient {
7879
private static final Logger logger = LoggerFactory.getLogger(ElasticsearchBackendClient.class);
7980

8081
private static final AWSCredentialsProvider credentialsProvider = new DefaultAWSCredentialsProviderChain();
82+
private static final Map<String, String> DEFAULT_ARGS = new LinkedHashMap<>();
83+
static {
84+
DEFAULT_ARGS.put(ES_SCHEME, "http");
85+
DEFAULT_ARGS.put(ES_HOST, null);
86+
DEFAULT_ARGS.put(ES_PORT, "9200");
87+
DEFAULT_ARGS.put(ES_INDEX, null);
88+
DEFAULT_ARGS.put(ES_TIMESTAMP, "yyyy-MM-dd'T'HH:mm:ss.SSSZZ");
89+
DEFAULT_ARGS.put(ES_BULK_SIZE, "100");
90+
DEFAULT_ARGS.put(ES_TIMEOUT_MS, Long.toString(DEFAULT_TIMEOUT_MS));
91+
DEFAULT_ARGS.put(ES_SAMPLE_FILTER, null);
92+
DEFAULT_ARGS.put(ES_TEST_MODE, "info");
93+
DEFAULT_ARGS.put(ES_AUTH_USER, "");
94+
DEFAULT_ARGS.put(ES_AUTH_PWD, "");
95+
DEFAULT_ARGS.put(ES_PARSE_REQ_HEADERS, "false");
96+
DEFAULT_ARGS.put(ES_PARSE_RES_HEADERS, "false");
97+
DEFAULT_ARGS.put(ES_AWS_ENDPOINT, "");
98+
DEFAULT_ARGS.put(ES_AWS_REGION, "");
99+
}
81100

82101
private ElasticSearchMetricSender sender;
83102

@@ -93,30 +112,15 @@ public class ElasticsearchBackendClient extends AbstractBackendListenerClient {
93112

94113
private long timeoutMs;
95114

115+
public ElasticsearchBackendClient() {
116+
super();
117+
}
118+
96119
@Override
97120
public Arguments getDefaultParameters() {
98-
Arguments parameters = new Arguments();
99-
parameters.addArgument(ES_SCHEME, "http");
100-
parameters.addArgument(ES_HOST, null);
101-
parameters.addArgument(ES_PORT, "9200");
102-
parameters.addArgument(ES_INDEX, null);
103-
parameters.addArgument(ES_FIELDS, "");
104-
parameters.addArgument(ES_TIMESTAMP, "yyyy-MM-dd'T'HH:mm:ss.SSSZZ");
105-
parameters.addArgument(ES_BULK_SIZE, "100");
106-
parameters.addArgument(ES_TIMEOUT_MS, Long.toString(DEFAULT_TIMEOUT_MS));
107-
parameters.addArgument(ES_SAMPLE_FILTER, null);
108-
parameters.addArgument(ES_TEST_MODE, "info");
109-
parameters.addArgument(ES_AUTH_USER, "");
110-
parameters.addArgument(ES_AUTH_PWD, "");
111-
parameters.addArgument(ES_PARSE_REQ_HEADERS, "false");
112-
parameters.addArgument(ES_PARSE_RES_HEADERS, "false");
113-
parameters.addArgument(ES_AWS_ENDPOINT, "");
114-
parameters.addArgument(ES_AWS_REGION, "");
115-
parameters.addArgument(SSL_TRUSTSTORE_PATH, "");
116-
parameters.addArgument(SSL_TRUSTSTORE_PW, "");
117-
parameters.addArgument(SSL_KEYSTORE_PATH, "");
118-
parameters.addArgument(SSL_KEYSTORE_PW, "");
119-
return parameters;
121+
Arguments arguments = new Arguments();
122+
DEFAULT_ARGS.forEach(arguments::addArgument);
123+
return arguments;
120124
}
121125

122126
@Override
@@ -146,7 +150,6 @@ public void onFailure(Node node) {
146150
}
147151
}).setMaxRetryTimeoutMillis(60000).build();
148152
} else {
149-
150153
AWS4Signer signer = new AWS4Signer();
151154
signer.setServiceName(SERVICE_NAME);
152155
signer.setRegionName(context.getParameter(ES_AWS_REGION));
@@ -166,6 +169,13 @@ public void onFailure(Node node) {
166169

167170
checkTestMode(context.getParameter(ES_TEST_MODE));
168171

172+
String[] filterArray = (context.getParameter(ES_SAMPLE_FILTER).contains(";")) ? context.getParameter(ES_SAMPLE_FILTER).split(";") : new String[] {context.getParameter(ES_SAMPLE_FILTER)};
173+
if(filterArray.length > 0 && !filterArray[0].trim().equals("")) {
174+
for (String filter : filterArray) {
175+
this.filters.add(filter.toLowerCase().trim());
176+
logger.info("Added filter: " + filter.toLowerCase().trim());
177+
}
178+
}
169179
super.setupTest(context);
170180
} catch (Exception e) {
171181
throw new IllegalStateException("Unable to connect to the ElasticSearch engine", e);

0 commit comments

Comments
 (0)