@@ -59,11 +59,14 @@ public class InfluxDBRawBackendListenerClient implements BackendListenerClient {
59
59
DEFAULT_ARGS .put ("influxdbUrl" , "http://host_to_change:8086/write?db=jmeter" );
60
60
DEFAULT_ARGS .put ("influxdbToken" , "" );
61
61
DEFAULT_ARGS .put ("measurement" , DEFAULT_MEASUREMENT );
62
+ DEFAULT_ARGS .put ("enabled" , "${__P(InfluxdbBackendListener.enabled, true)}" );
62
63
}
63
64
64
65
private InfluxdbMetricsSender influxDBMetricsManager ;
65
66
private String measurement ;
66
67
68
+ private boolean listenerIsEnabled ;
69
+
67
70
public InfluxDBRawBackendListenerClient () {
68
71
// default constructor
69
72
}
@@ -89,45 +92,49 @@ InfluxdbMetricsSender getInfluxDBMetricsManager() {
89
92
90
93
@ Override
91
94
public void setupTest (BackendListenerContext context ) throws Exception {
92
- initInfluxDBMetricsManager (context );
93
- measurement = context .getParameter ("measurement" , DEFAULT_MEASUREMENT );
94
- }
95
+ listenerIsEnabled = Boolean .parseBoolean (context .getParameter ("enabled" , "true" ));
96
+ log .info ("{} will send metrics: {}" , this .getClass ().getSimpleName (), listenerIsEnabled );
95
97
96
- private void initInfluxDBMetricsManager ( BackendListenerContext context ) throws Exception {
97
- influxDBMetricsManager = Class
98
- .forName (context .getParameter ("influxdbMetricsSender" ))
99
- .asSubclass (InfluxdbMetricsSender .class )
100
- .getDeclaredConstructor ()
101
- .newInstance ();
98
+ if ( listenerIsEnabled ) {
99
+ influxDBMetricsManager = Class
100
+ .forName (context .getParameter ("influxdbMetricsSender" ))
101
+ .asSubclass (InfluxdbMetricsSender .class )
102
+ .getDeclaredConstructor ()
103
+ .newInstance ();
102
104
103
- influxDBMetricsManager .setup (
104
- context .getParameter ("influxdbUrl" ),
105
- context .getParameter ("influxdbToken" ));
105
+ influxDBMetricsManager .setup (
106
+ context .getParameter ("influxdbUrl" ),
107
+ context .getParameter ("influxdbToken" ));
108
+
109
+ measurement = context .getParameter ("measurement" , DEFAULT_MEASUREMENT );
110
+ }
106
111
}
107
112
113
+
108
114
@ Override
109
115
public void teardownTest (BackendListenerContext context ) {
110
- influxDBMetricsManager .destroy ();
116
+ if (influxDBMetricsManager != null ) {
117
+ influxDBMetricsManager .destroy ();
118
+ }
111
119
}
112
120
113
121
@ Override
114
- public void handleSampleResults (
115
- List <SampleResult > sampleResults , BackendListenerContext context ) {
116
- log .debug ("Handling {} sample results" , sampleResults .size ());
117
- synchronized (LOCK ) {
118
- for (SampleResult sampleResult : sampleResults ) {
119
- addMetricFromSampleResult (sampleResult );
122
+ public void handleSampleResults (List <SampleResult > sampleResults , BackendListenerContext context ) {
123
+ if (listenerIsEnabled ) {
124
+ log .debug ("Handling {} sample results" , sampleResults .size ());
125
+ synchronized (LOCK ) {
126
+ for (SampleResult sampleResult : sampleResults ) {
127
+ addMetricFromSampleResult (sampleResult );
128
+ }
129
+ influxDBMetricsManager .writeAndSendMetrics ();
120
130
}
121
- influxDBMetricsManager .writeAndSendMetrics ();
122
131
}
123
132
}
124
133
125
134
private void addMetricFromSampleResult (SampleResult sampleResult ) {
126
135
String tags = "," + createTags (sampleResult );
127
136
String fields = createFields (sampleResult );
128
- long timestamp = sampleResult .getTimeStamp ();
129
-
130
- influxDBMetricsManager .addMetric (measurement , tags , fields , timestamp );
137
+ influxDBMetricsManager .addMetric (measurement , tags , fields , sampleResult .getTimeStamp ());
131
138
}
132
139
133
140
@ VisibleForTesting
0 commit comments