From e0c9c4ff5e520d6ead46ca4d08bc39f67c4b3a95 Mon Sep 17 00:00:00 2001 From: Slim Bouguerra Date: Tue, 8 Nov 2016 06:47:08 -0800 Subject: [PATCH 1/4] as per @itaiy suggested will close then try to connect. --- .../main/java/io/druid/emitter/graphite/GraphiteEmitter.java | 2 ++ 1 file changed, 2 insertions(+) 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 15e03c06d867..6b79727c1802 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 @@ -175,6 +175,8 @@ public void run() if (e instanceof InterruptedException) { Thread.currentThread().interrupt(); } else if (e instanceof SocketException) { + pickledGraphite.close(); + log.info("had exception [%s] trying to re-connect to graphite server", ((SocketException) e).getMessage()); pickledGraphite.connect(); } } From b8039b7026d7a2030480ab835736f9a559c110d4 Mon Sep 17 00:00:00 2001 From: Slim Bouguerra Date: Tue, 8 Nov 2016 07:14:20 -0800 Subject: [PATCH 2/4] use close instead of flush --- .../druid/emitter/graphite/GraphiteEmitter.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 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 6b79727c1802..124c7e360671 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 @@ -136,16 +136,14 @@ public void emit(Event event) private class ConsumerRunnable implements Runnable { - private PickledGraphite pickledGraphite = new PickledGraphite( - graphiteEmitterConfig.getHostname(), - graphiteEmitterConfig.getPort(), - graphiteEmitterConfig.getBatchSize() - ); - @Override public void run() { - try { + try (PickledGraphite pickledGraphite = new PickledGraphite( + graphiteEmitterConfig.getHostname(), + graphiteEmitterConfig.getPort(), + graphiteEmitterConfig.getBatchSize() + )) { if (!pickledGraphite.isConnected()) { log.info("trying to connect to graphite server"); pickledGraphite.connect(); @@ -176,12 +174,11 @@ public void run() Thread.currentThread().interrupt(); } else if (e instanceof SocketException) { pickledGraphite.close(); - log.info("had exception [%s] trying to re-connect to graphite server", ((SocketException) e).getMessage()); + log.info("had exception [%s] trying to re-connect to graphite server", e.getMessage()); pickledGraphite.connect(); } } } - pickledGraphite.flush(); } catch (Exception e) { log.error(e, e.getMessage()); From 84d4590749082e4be8aab07d5f0aaa78fc69eb44 Mon Sep 17 00:00:00 2001 From: Slim Bouguerra Date: Tue, 8 Nov 2016 10:49:14 -0800 Subject: [PATCH 3/4] git fix comments --- .../main/java/io/druid/emitter/graphite/GraphiteEmitter.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 124c7e360671..4f7fcb35ae05 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 @@ -173,8 +173,10 @@ public void run() if (e instanceof InterruptedException) { Thread.currentThread().interrupt(); } else if (e instanceof SocketException) { + // This is antagonistic to general Closeable contract in Java, + // it is needed to allow re-connection in case of the socket is closed due long period of inactivity pickledGraphite.close(); - log.info("had exception [%s] trying to re-connect to graphite server", e.getMessage()); + log.warn("Trying to re-connect to graphite server"); pickledGraphite.connect(); } } From 4c50d08380d4f723302fbef5df6c55e222573cae Mon Sep 17 00:00:00 2001 From: Slim Bouguerra Date: Tue, 8 Nov 2016 10:58:25 -0800 Subject: [PATCH 4/4] break the loop in case of interrupted --- .../src/main/java/io/druid/emitter/graphite/GraphiteEmitter.java | 1 + 1 file changed, 1 insertion(+) 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 4f7fcb35ae05..ed4dcea4c36d 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 @@ -172,6 +172,7 @@ public void run() log.error(e, e.getMessage()); if (e instanceof InterruptedException) { Thread.currentThread().interrupt(); + break; } else if (e instanceof SocketException) { // This is antagonistic to general Closeable contract in Java, // it is needed to allow re-connection in case of the socket is closed due long period of inactivity