11package io .github .delirius325 .jmeter .backendlistener .elasticsearch ;
22
3- import java .util .Arrays ;
4- import java .util .HashSet ;
5- import java .util .List ;
6- import java .util .Set ;
3+ import java .util .*;
74import java .util .regex .Matcher ;
85import java .util .regex .Pattern ;
96
2926
3027public class ElasticsearchBackendClient extends AbstractBackendListenerClient {
3128 private static final String BUILD_NUMBER = "BuildNumber" ;
32-
3329 private static final String ES_SCHEME = "es.scheme" ;
34-
3530 private static final String ES_HOST = "es.host" ;
36-
3731 private static final String ES_PORT = "es.port" ;
38-
3932 private static final String ES_INDEX = "es.index" ;
40-
4133 private static final String ES_FIELDS = "es.fields" ;
42-
4334 private static final String ES_TIMESTAMP = "es.timestamp" ;
44-
4535 private static final String ES_BULK_SIZE = "es.bulk.size" ;
46-
4736 private static final String ES_TIMEOUT_MS = "es.timout.ms" ;
48-
4937 private static final String ES_SAMPLE_FILTER = "es.sample.filter" ;
50-
5138 private static final String ES_TEST_MODE = "es.test.mode" ;
52-
5339 private static final String ES_AUTH_USER = "es.xpack.user" ;
54-
5540 private static final String ES_AUTH_PWD = "es.xpack.password" ;
56-
5741 private static final String ES_PARSE_REQ_HEADERS = "es.parse.all.req.headers" ;
58-
5942 private static final String ES_PARSE_RES_HEADERS = "es.parse.all.res.headers" ;
60-
6143 private static final String ES_AWS_ENDPOINT = "es.aws.endpoint" ;
62-
6344 private static final String ES_AWS_REGION = "es.aws.region" ;
64-
65- private static final String SSL_TRUSTSTORE_PATH = "es.ssl.truststore.path" ;
66-
67- private static final String SSL_TRUSTSTORE_PW = "es.ssl.truststore.pw" ;
68-
69- private static final String SSL_KEYSTORE_PATH = "es.ssl.keystore.path" ;
70-
71- private static final String SSL_KEYSTORE_PW = "es.ssl.keystore.pw" ;
72-
45+ private static final String ES_SSL_TRUSTSTORE_PATH = "es.ssl.truststore.path" ;
46+ private static final String ES_SSL_TRUSTSTORE_PW = "es.ssl.truststore.pw" ;
47+ private static final String ES_SSL_KEYSTORE_PATH = "es.ssl.keystore.path" ;
48+ private static final String ES_SSL_KEYSTORE_PW = "es.ssl.keystore.pw" ;
7349 private static final long DEFAULT_TIMEOUT_MS = 200L ;
74-
7550 private static final String SERVICE_NAME = "es" ;
76-
7751 private static RestClient client ;
78-
7952 private static final Logger logger = LoggerFactory .getLogger (ElasticsearchBackendClient .class );
80-
8153 private static final AWSCredentialsProvider credentialsProvider = new DefaultAWSCredentialsProviderChain ();
8254 private static final Map <String , String > DEFAULT_ARGS = new LinkedHashMap <>();
8355 static {
@@ -96,20 +68,17 @@ public class ElasticsearchBackendClient extends AbstractBackendListenerClient {
9668 DEFAULT_ARGS .put (ES_PARSE_RES_HEADERS , "false" );
9769 DEFAULT_ARGS .put (ES_AWS_ENDPOINT , "" );
9870 DEFAULT_ARGS .put (ES_AWS_REGION , "" );
71+ DEFAULT_ARGS .put (ES_SSL_TRUSTSTORE_PATH , "" );
72+ DEFAULT_ARGS .put (ES_SSL_TRUSTSTORE_PW , "" );
73+ DEFAULT_ARGS .put (ES_SSL_KEYSTORE_PATH , "" );
74+ DEFAULT_ARGS .put (ES_SSL_KEYSTORE_PW , "" );
9975 }
100-
10176 private ElasticSearchMetricSender sender ;
102-
10377 private Set <String > modes ;
104-
10578 private Set <String > filters ;
106-
10779 private Set <String > fields ;
108-
10980 private int buildNumber ;
110-
11181 private int bulkSize ;
112-
11382 private long timeoutMs ;
11483
11584 public ElasticsearchBackendClient () {
@@ -175,34 +144,38 @@ public void onFailure(Node node) {
175144 }
176145
177146 /**
178- * This method converts a semicolon sepearted list contained in a parameter into s string set
179- *
147+ * Method that converts a semicolon separated list contained in a parameter into a string set
148+ * @param context
149+ * @param parameter
150+ * @param set
180151 */
181152 private void convertParameterToSet (BackendListenerContext context , String parameter , Set <String > set ) {
182153 String [] array = (context .getParameter (parameter ).contains (";" )) ? context .getParameter (parameter ).split (";" )
183154 : new String [] { context .getParameter (parameter ) };
184155 if (array .length > 0 && !array [0 ].trim ().equals ("" )) {
185156 for (String entry : array ) {
186157 set .add (entry .toLowerCase ().trim ());
187- logger .info ("Parsed from " + parameter + ": " + entry .toLowerCase ().trim ());
158+ if (logger .isDebugEnabled ())
159+ logger .debug ("Parsed from " + parameter + ": " + entry .toLowerCase ().trim ());
188160 }
189161 }
190162 }
191163
192164 /**
193- * This methods sets the system properties for SSL to the provided parameters
165+ * Method that sets the SSL configuration to be able to send requests to a secured endpoint
166+ * @param context
194167 */
195168 private void setSSLConfiguration (BackendListenerContext context ) {
196- System .setProperty ("javax.net.ssl.keyStore" , context .getParameter (SSL_KEYSTORE_PATH ));
197- System .setProperty ("javax.net.ssl.keyStorePassword" , context .getParameter (SSL_KEYSTORE_PW ));
169+ System .setProperty ("javax.net.ssl.keyStore" , context .getParameter (ES_SSL_KEYSTORE_PATH ));
170+ System .setProperty ("javax.net.ssl.keyStorePassword" , context .getParameter (ES_SSL_KEYSTORE_PW ));
198171 System .setProperty ("javax.net.ssl.keyStoreType" ,
199- FilenameUtils .getExtension (context .getParameter (SSL_KEYSTORE_PATH )).equals ("jks" ) ? "jks" : "pkcs12" );
172+ FilenameUtils .getExtension (context .getParameter (ES_SSL_KEYSTORE_PATH )).equals ("jks" ) ? "jks" : "pkcs12" );
200173 //jks (.jks) or pkcs12 (.p12)
201174
202- System .setProperty ("javax.net.ssl.trustStore" , context .getParameter (SSL_TRUSTSTORE_PATH ));
203- System .setProperty ("javax.net.ssl.trustStorePassword" , context .getParameter (SSL_TRUSTSTORE_PW ));
175+ System .setProperty ("javax.net.ssl.trustStore" , context .getParameter (ES_SSL_TRUSTSTORE_PATH ));
176+ System .setProperty ("javax.net.ssl.trustStorePassword" , context .getParameter (ES_SSL_TRUSTSTORE_PW ));
204177 System .setProperty ("javax.net.ssl.trustStoreType" ,
205- FilenameUtils .getExtension (context .getParameter (SSL_TRUSTSTORE_PATH )).equals ("jks" ) ? "jks"
178+ FilenameUtils .getExtension (context .getParameter (ES_SSL_TRUSTSTORE_PATH )).equals ("jks" ) ? "jks"
206179 : "pkcs12" );
207180
208181 }
0 commit comments