From 002c87d8fc1c14df6b0e0ffd13b090369de0c783 Mon Sep 17 00:00:00 2001 From: Ian Boston Date: Tue, 4 Apr 2017 18:15:30 +0200 Subject: [PATCH] Fixed bad stats names getting through --- .../java/com/readytalk/metrics/StatsDReporter.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/metrics3-statsd/src/main/java/com/readytalk/metrics/StatsDReporter.java b/metrics3-statsd/src/main/java/com/readytalk/metrics/StatsDReporter.java index 3146f15..97ecb00 100644 --- a/metrics3-statsd/src/main/java/com/readytalk/metrics/StatsDReporter.java +++ b/metrics3-statsd/src/main/java/com/readytalk/metrics/StatsDReporter.java @@ -159,6 +159,9 @@ public StatsDReporter build(final StatsD statsD) { } } + private String cleanKey(String key) { + return key.replaceAll("[\\/:]",".").replaceAll("\\.\\.","."); + } @Override @SuppressWarnings("rawtypes") //Metrics 3.0 interface specifies the raw Gauge type @@ -172,23 +175,23 @@ public void report(final SortedMap gauges, statsD.connect(); for (Map.Entry entry : gauges.entrySet()) { - reportGauge(entry.getKey(), entry.getValue()); + reportGauge(cleanKey(entry.getKey()), entry.getValue()); } for (Map.Entry entry : counters.entrySet()) { - reportCounter(entry.getKey(), entry.getValue()); + reportCounter(cleanKey(entry.getKey()), entry.getValue()); } for (Map.Entry entry : histograms.entrySet()) { - reportHistogram(entry.getKey(), entry.getValue()); + reportHistogram(cleanKey(entry.getKey()), entry.getValue()); } for (Map.Entry entry : meters.entrySet()) { - reportMetered(entry.getKey(), entry.getValue()); + reportMetered(cleanKey(entry.getKey()), entry.getValue()); } for (Map.Entry entry : timers.entrySet()) { - reportTimer(entry.getKey(), entry.getValue()); + reportTimer(cleanKey(entry.getKey()), entry.getValue()); } } catch (IOException e) { LOG.warn("Unable to report to StatsD", statsD, e);