From e4d9514ef76cf4d1e9d6078936c44ba15f90321a Mon Sep 17 00:00:00 2001 From: Slim Bouguerra Date: Tue, 10 May 2016 15:46:35 -0700 Subject: [PATCH 1/2] reconnect to the graphite after transient disconnect --- .../java/io/druid/emitter/graphite/GraphiteEmitter.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/extensions-contrib/graphite-emitter/src/main/java/io/druid/emitter/graphite/GraphiteEmitter.java b/extensions-contrib/graphite-emitter/src/main/java/io/druid/emitter/graphite/GraphiteEmitter.java index d8c877aa046a..cbc428459faa 100644 --- a/extensions-contrib/graphite-emitter/src/main/java/io/druid/emitter/graphite/GraphiteEmitter.java +++ b/extensions-contrib/graphite-emitter/src/main/java/io/druid/emitter/graphite/GraphiteEmitter.java @@ -139,13 +139,12 @@ private class ConsumerRunnable implements Runnable public void run() { try { - - if (!pickledGraphite.isConnected()) { - log.info("trying to connect to graphite server"); - pickledGraphite.connect(); - } while (eventsQueue.size() > 0 && !exec.isShutdown()) { try { + if (!pickledGraphite.isConnected()) { + log.info("trying to connect to graphite server"); + pickledGraphite.connect(); + } final GraphiteEvent graphiteEvent = eventsQueue.poll( graphiteEmitterConfig.getWaitForEventTime(), TimeUnit.MILLISECONDS From b9a18e933e8fd03fe703f99c4cb0d2a817b71c66 Mon Sep 17 00:00:00 2001 From: Slim Bouguerra Date: Wed, 11 May 2016 08:32:44 -0700 Subject: [PATCH 2/2] catch the socket exception and retry --- .../io/druid/emitter/graphite/GraphiteEmitter.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/extensions-contrib/graphite-emitter/src/main/java/io/druid/emitter/graphite/GraphiteEmitter.java b/extensions-contrib/graphite-emitter/src/main/java/io/druid/emitter/graphite/GraphiteEmitter.java index cbc428459faa..52e892c0fead 100644 --- a/extensions-contrib/graphite-emitter/src/main/java/io/druid/emitter/graphite/GraphiteEmitter.java +++ b/extensions-contrib/graphite-emitter/src/main/java/io/druid/emitter/graphite/GraphiteEmitter.java @@ -29,6 +29,7 @@ import com.metamx.emitter.service.ServiceMetricEvent; import java.io.IOException; +import java.net.SocketException; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executors; @@ -139,12 +140,12 @@ private class ConsumerRunnable implements Runnable public void run() { try { + if (!pickledGraphite.isConnected()) { + log.info("trying to connect to graphite server"); + pickledGraphite.connect(); + } while (eventsQueue.size() > 0 && !exec.isShutdown()) { try { - if (!pickledGraphite.isConnected()) { - log.info("trying to connect to graphite server"); - pickledGraphite.connect(); - } final GraphiteEvent graphiteEvent = eventsQueue.poll( graphiteEmitterConfig.getWaitForEventTime(), TimeUnit.MILLISECONDS @@ -167,6 +168,8 @@ public void run() log.error(e, e.getMessage()); if (e instanceof InterruptedException) { Thread.currentThread().interrupt(); + } else if (e instanceof SocketException){ + pickledGraphite.connect(); } } }