You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2017/01/21 10:06:30 UTC
svn commit: r1779715 -
/jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/influxdb/HttpMetricsSender.java
Author: pmouawad
Date: Sat Jan 21 10:06:30 2017
New Revision: 1779715
URL: http://svn.apache.org/viewvc?rev=1779715&view=rev
Log:
Bug 60590 BackendListener : Add Influxdb BackendListenerClient implementation to JMeter.
Annotation contained "timestamp in its label
Annotation for end of test was not send due to HttpClient being closed before last send was done
Bugzilla Id: 60590
Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/influxdb/HttpMetricsSender.java
Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/influxdb/HttpMetricsSender.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/influxdb/HttpMetricsSender.java?rev=1779715&r1=1779714&r2=1779715&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/influxdb/HttpMetricsSender.java (original)
+++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/influxdb/HttpMetricsSender.java Sat Jan 21 10:06:30 2017
@@ -23,6 +23,10 @@ import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpResponse;
@@ -60,6 +64,8 @@ class HttpMetricsSender extends Abstract
private URL url;
+ private Future<HttpResponse> lastRequest;
+
HttpMetricsSender() {
super();
}
@@ -147,6 +153,7 @@ class HttpMetricsSender extends Abstract
.append(metric.tag)
.append(" ") //$NON-NLS-1$
.append(metric.field)
+ .append(" ")
.append(timestamp)
.append("\n"); //$NON-NLS-1$
}
@@ -154,7 +161,7 @@ class HttpMetricsSender extends Abstract
StringEntity entity = new StringEntity(sb.toString(), StandardCharsets.UTF_8);
httpRequest.setEntity(entity);
- httpClient.execute(httpRequest, new FutureCallback<HttpResponse>() {
+ lastRequest = httpClient.execute(httpRequest, new FutureCallback<HttpResponse>() {
public void completed(final HttpResponse response) {
int code = response.getStatusLine().getStatusCode();
@@ -178,11 +185,11 @@ class HttpMetricsSender extends Abstract
}
public void failed(final Exception ex) {
- LOG.error("failed to connect to influxDB server : " + ex.getMessage());
+ LOG.error("failed to send data to influxDB server : " + ex.getMessage());
}
public void cancelled() {
-
+ LOG.warn("Request to influxDB server was cancelled");
}
});
@@ -202,6 +209,12 @@ class HttpMetricsSender extends Abstract
*/
@Override
public void destroy() {
+ // Give some time to send last metrics before shutting down
+ try {
+ lastRequest.get(5, TimeUnit.SECONDS);
+ } catch (InterruptedException | ExecutionException | TimeoutException e) {
+ LOG.error("Error waiting for last request to be send to InfluxDB", e);
+ }
if(httpRequest != null) {
httpRequest.abort();
}