77import org .apache .jmeter .samplers .SampleResult ;
88import org .apache .jmeter .util .JMeterUtils ;
99import org .apache .jmeter .visualizers .backend .AbstractBackendListenerClient ;
10+ import org .apache .jmeter .visualizers .backend .BackendListener ;
1011import org .apache .jmeter .visualizers .backend .BackendListenerContext ;
1112import org .elasticsearch .client .Node ;
1213import org .elasticsearch .client .RestClient ;
@@ -44,6 +45,24 @@ public class ElasticsearchBackendClient extends AbstractBackendListenerClient {
4445 private static RestClient client ;
4546 private static final Logger logger = LoggerFactory .getLogger (ElasticsearchBackendClient .class );
4647 private static final AWSCredentialsProvider credentialsProvider = new DefaultAWSCredentialsProviderChain ();
48+ private static final Map <String , String > DEFAULT_ARGS = new LinkedHashMap <>();
49+ static {
50+ DEFAULT_ARGS .put (ES_SCHEME , "http" );
51+ DEFAULT_ARGS .put (ES_HOST , null );
52+ DEFAULT_ARGS .put (ES_PORT , "9200" );
53+ DEFAULT_ARGS .put (ES_INDEX , null );
54+ DEFAULT_ARGS .put (ES_TIMESTAMP , "yyyy-MM-dd'T'HH:mm:ss.SSSZZ" );
55+ DEFAULT_ARGS .put (ES_BULK_SIZE , "100" );
56+ DEFAULT_ARGS .put (ES_TIMEOUT_MS , Long .toString (DEFAULT_TIMEOUT_MS ));
57+ DEFAULT_ARGS .put (ES_SAMPLE_FILTER , null );
58+ DEFAULT_ARGS .put (ES_TEST_MODE , "info" );
59+ DEFAULT_ARGS .put (ES_AUTH_USER , "" );
60+ DEFAULT_ARGS .put (ES_AUTH_PWD , "" );
61+ DEFAULT_ARGS .put (ES_PARSE_REQ_HEADERS , "false" );
62+ DEFAULT_ARGS .put (ES_PARSE_RES_HEADERS , "false" );
63+ DEFAULT_ARGS .put (ES_AWS_ENDPOINT , "" );
64+ DEFAULT_ARGS .put (ES_AWS_REGION , "" );
65+ }
4766
4867 private ElasticSearchMetricSender sender ;
4968 private Set <String > modes ;
@@ -52,25 +71,15 @@ public class ElasticsearchBackendClient extends AbstractBackendListenerClient {
5271 private int bulkSize ;
5372 private long timeoutMs ;
5473
74+ public ElasticsearchBackendClient () {
75+ super ();
76+ }
77+
5578 @ Override
5679 public Arguments getDefaultParameters () {
57- Arguments parameters = new Arguments ();
58- parameters .addArgument (ES_SCHEME , "http" );
59- parameters .addArgument (ES_HOST , null );
60- parameters .addArgument (ES_PORT , "9200" );
61- parameters .addArgument (ES_INDEX , null );
62- parameters .addArgument (ES_TIMESTAMP , "yyyy-MM-dd'T'HH:mm:ss.SSSZZ" );
63- parameters .addArgument (ES_BULK_SIZE , "100" );
64- parameters .addArgument (ES_TIMEOUT_MS , Long .toString (DEFAULT_TIMEOUT_MS ));
65- parameters .addArgument (ES_SAMPLE_FILTER , null );
66- parameters .addArgument (ES_TEST_MODE , "info" );
67- parameters .addArgument (ES_AUTH_USER , "" );
68- parameters .addArgument (ES_AUTH_PWD , "" );
69- parameters .addArgument (ES_PARSE_REQ_HEADERS , "false" );
70- parameters .addArgument (ES_PARSE_RES_HEADERS , "false" );
71- parameters .addArgument (ES_AWS_ENDPOINT , "" );
72- parameters .addArgument (ES_AWS_REGION , "" );
73- return parameters ;
80+ Arguments arguments = new Arguments ();
81+ DEFAULT_ARGS .forEach (arguments ::addArgument );
82+ return arguments ;
7483 }
7584
7685 @ Override
@@ -95,7 +104,6 @@ public void onFailure(Node node) {
95104 .setMaxRetryTimeoutMillis (60000 )
96105 .build ();
97106 } else {
98-
99107 AWS4Signer signer = new AWS4Signer ();
100108 signer .setServiceName (SERVICE_NAME );
101109 signer .setRegionName (context .getParameter (ES_AWS_REGION ));
@@ -106,7 +114,7 @@ public void onFailure(Node node) {
106114 this .sender .createIndex ();
107115
108116 checkTestMode (context .getParameter (ES_TEST_MODE ));
109-
117+
110118 String [] filterArray = (context .getParameter (ES_SAMPLE_FILTER ).contains (";" )) ? context .getParameter (ES_SAMPLE_FILTER ).split (";" ) : new String [] {context .getParameter (ES_SAMPLE_FILTER )};
111119 if (filterArray .length > 0 && !filterArray [0 ].trim ().equals ("" )) {
112120 for (String filter : filterArray ) {
0 commit comments