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();
         }