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 ;
@@ -54,29 +73,14 @@ public class ElasticsearchBackendClient extends AbstractBackendListenerClient {
5473
5574 @ Override
5675 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 ;
76+ Arguments arguments = new Arguments ();
77+ DEFAULT_ARGS .forEach (arguments ::addArgument );
78+ return arguments ;
7479 }
7580
7681 @ Override
7782 public void setupTest (BackendListenerContext context ) throws Exception {
7883 try {
79- context = new BackendListenerContext (getDefaultParameters ());
8084 this .filters = new HashSet <>();
8185 this .modes = new HashSet <>(Arrays .asList ("info" ,"debug" ,"error" ,"quiet" ));
8286 this .bulkSize = Integer .parseInt (context .getParameter (ES_BULK_SIZE ));
@@ -96,7 +100,6 @@ public void onFailure(Node node) {
96100 .setMaxRetryTimeoutMillis (60000 )
97101 .build ();
98102 } else {
99-
100103 AWS4Signer signer = new AWS4Signer ();
101104 signer .setServiceName (SERVICE_NAME );
102105 signer .setRegionName (context .getParameter (ES_AWS_REGION ));
@@ -107,7 +110,7 @@ public void onFailure(Node node) {
107110 this .sender .createIndex ();
108111
109112 checkTestMode (context .getParameter (ES_TEST_MODE ));
110-
113+
111114 String [] filterArray = (context .getParameter (ES_SAMPLE_FILTER ).contains (";" )) ? context .getParameter (ES_SAMPLE_FILTER ).split (";" ) : new String [] {context .getParameter (ES_SAMPLE_FILTER )};
112115 if (filterArray .length > 0 && !filterArray [0 ].trim ().equals ("" )) {
113116 for (String filter : filterArray ) {
0 commit comments