From c223bf7891b69721d1c63e54cb89c594b9fd82e4 Mon Sep 17 00:00:00 2001 From: Marcin Owsiany Date: Tue, 12 Jun 2018 12:10:10 +0200 Subject: [PATCH] Take statsd host and port from environment if missing in the config. --- .../kafka/kafka09/StatsdMetricsReporter.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/airbnb/kafka/kafka09/StatsdMetricsReporter.java b/src/main/java/com/airbnb/kafka/kafka09/StatsdMetricsReporter.java index 4ec62981d..7ca85551b 100644 --- a/src/main/java/com/airbnb/kafka/kafka09/StatsdMetricsReporter.java +++ b/src/main/java/com/airbnb/kafka/kafka09/StatsdMetricsReporter.java @@ -50,6 +50,8 @@ public class StatsdMetricsReporter implements MetricsReporter { private static final String METRIC_PREFIX = "kafka."; private static final int POLLING_PERIOD_IN_SECONDS = 10; + private static final String STATSD_UDP_PORT = "STATSD_UDP_PORT"; + private static final String STATSD_UDP_HOST = "STATSD_UDP_HOST"; private boolean enabled; private final AtomicBoolean running = new AtomicBoolean(false); @@ -119,14 +121,22 @@ public void close() { stopReporter(); } + private String configSettingOrEnvVar(Map configs, String setting, String varName) { + if (configs.containsKey(setting)) { + return (String) configs.get(setting); + } else { + return System.getenv(varName); + } + } + @Override public void configure(Map configs) { enabled = configs.containsKey(STATSD_REPORTER_ENABLED) ? Boolean.valueOf((String) configs.get(STATSD_REPORTER_ENABLED)) : false; - host = configs.containsKey(STATSD_HOST) ? - (String) configs.get(STATSD_HOST) : "localhost"; - port = configs.containsKey(STATSD_PORT) ? - Integer.valueOf((String) configs.get(STATSD_PORT)) : 8125; + host = configSettingOrEnvVar(configs, STATSD_HOST, STATSD_UDP_HOST) != null ? + configSettingOrEnvVar(configs, STATSD_HOST, STATSD_UDP_HOST) : "localhost"; + port = configSettingOrEnvVar(configs, STATSD_PORT, STATSD_UDP_PORT) != null ? + Integer.valueOf(configSettingOrEnvVar(configs, STATSD_PORT, STATSD_UDP_PORT)) : 8125; prefix = configs.containsKey(STATSD_METRICS_PREFIX) ? (String) configs.get(STATSD_METRICS_PREFIX) : ""; pollingPeriodInSeconds = configs.containsKey(POLLING_INTERVAL_SECS) ?