From fcbd68960a224cbbdd76d0b796002dc304e3ab4b Mon Sep 17 00:00:00 2001 From: Guruprasad Sridharan Date: Tue, 21 Nov 2017 21:52:12 +0530 Subject: [PATCH 1/2] Added hostname resolution enum to allow setting hostname correctly in case the service is running in a docker environment --- .../riemann/DropWizardRiemannReporter.java | 10 ++------ .../metrics/riemann/HostnameResolution.java | 24 +++++++++++++++++++ .../io/dropwizard/riemann/RiemannBundle.java | 1 + .../io/dropwizard/riemann/RiemannConfig.java | 5 ++++ 4 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/codahale/metrics/riemann/HostnameResolution.java diff --git a/src/main/java/com/codahale/metrics/riemann/DropWizardRiemannReporter.java b/src/main/java/com/codahale/metrics/riemann/DropWizardRiemannReporter.java index a8c896d..dab1013 100644 --- a/src/main/java/com/codahale/metrics/riemann/DropWizardRiemannReporter.java +++ b/src/main/java/com/codahale/metrics/riemann/DropWizardRiemannReporter.java @@ -24,8 +24,6 @@ import org.slf4j.LoggerFactory; import java.io.IOException; -import java.net.InetAddress; -import java.net.UnknownHostException; import java.util.*; import java.util.concurrent.TimeUnit; @@ -69,14 +67,10 @@ private Builder(MetricRegistry registry) { this.durationUnit = TimeUnit.MILLISECONDS; this.filter = MetricFilter.ALL; this.ttl = null; - this.tags = new ArrayList(); + this.tags = new ArrayList<>(); this.prefix = null; this.separator = " "; - try { - this.localHost = InetAddress.getLocalHost().getHostName(); - } catch (UnknownHostException e) { - this.localHost = null; - } + this.localHost = null; } /** diff --git a/src/main/java/com/codahale/metrics/riemann/HostnameResolution.java b/src/main/java/com/codahale/metrics/riemann/HostnameResolution.java new file mode 100644 index 0000000..621178c --- /dev/null +++ b/src/main/java/com/codahale/metrics/riemann/HostnameResolution.java @@ -0,0 +1,24 @@ +package com.codahale.metrics.riemann; + +import java.net.InetAddress; + +public enum HostnameResolution { + LOCAL() { + @Override + public String getHostname() { + try { + return InetAddress.getLocalHost().getHostName(); + } catch (Exception e) { + return null; + } + } + }, + DOCKER { + @Override + public String getHostname() { + return System.getenv("HOST"); + } + }; + + public abstract String getHostname(); +} diff --git a/src/main/java/io/dropwizard/riemann/RiemannBundle.java b/src/main/java/io/dropwizard/riemann/RiemannBundle.java index cc96950..18f0265 100644 --- a/src/main/java/io/dropwizard/riemann/RiemannBundle.java +++ b/src/main/java/io/dropwizard/riemann/RiemannBundle.java @@ -66,6 +66,7 @@ public void start() throws Exception { .tags(riemannConfig.getTags()) .prefixedWith(riemannConfig.getPrefix()) .useSeparator(".") + .localHost(riemannConfig.getHostnameResolution().getHostname()) .convertDurationsTo(TimeUnit.MILLISECONDS).convertRatesTo(TimeUnit.SECONDS); riemannReporter = builder.build(riemann); riemannReporter.start(riemannConfig.getPollingInterval(), TimeUnit.SECONDS); diff --git a/src/main/java/io/dropwizard/riemann/RiemannConfig.java b/src/main/java/io/dropwizard/riemann/RiemannConfig.java index 7f20c21..5fc4dd6 100644 --- a/src/main/java/io/dropwizard/riemann/RiemannConfig.java +++ b/src/main/java/io/dropwizard/riemann/RiemannConfig.java @@ -16,11 +16,13 @@ package io.dropwizard.riemann; +import com.codahale.metrics.riemann.HostnameResolution; import lombok.*; import org.hibernate.validator.constraints.NotEmpty; import javax.validation.constraints.Max; import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; import java.util.Collections; import java.util.List; @@ -47,4 +49,7 @@ public class RiemannConfig { @Singular private List tags = Collections.emptyList(); + + @NotNull + private HostnameResolution hostnameResolution = HostnameResolution.LOCAL; } From 63b5094b0ab8ec9b65c2caef09a070e9aa15311b Mon Sep 17 00:00:00 2001 From: Guruprasad Sridharan Date: Tue, 21 Nov 2017 21:54:09 +0530 Subject: [PATCH 2/2] Code aesthetics fix --- .../java/com/codahale/metrics/riemann/HostnameResolution.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/codahale/metrics/riemann/HostnameResolution.java b/src/main/java/com/codahale/metrics/riemann/HostnameResolution.java index 621178c..0dc288a 100644 --- a/src/main/java/com/codahale/metrics/riemann/HostnameResolution.java +++ b/src/main/java/com/codahale/metrics/riemann/HostnameResolution.java @@ -3,7 +3,7 @@ import java.net.InetAddress; public enum HostnameResolution { - LOCAL() { + LOCAL { @Override public String getHostname() { try {