Author: rmannibucau Date: Mon Oct 14 06:39:58 2013 New Revision: 1531800 URL: http://svn.apache.org/r1531800 Log: ensuring we don't have any space which could corrupt the sent data in keys
Modified: commons/sandbox/monitoring/trunk/graphite/src/main/java/org/apache/commons/monitoring/graphite/GraphiteDataStore.java Modified: commons/sandbox/monitoring/trunk/graphite/src/main/java/org/apache/commons/monitoring/graphite/GraphiteDataStore.java URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/graphite/src/main/java/org/apache/commons/monitoring/graphite/GraphiteDataStore.java?rev=1531800&r1=1531799&r2=1531800&view=diff ============================================================================== --- commons/sandbox/monitoring/trunk/graphite/src/main/java/org/apache/commons/monitoring/graphite/GraphiteDataStore.java (original) +++ commons/sandbox/monitoring/trunk/graphite/src/main/java/org/apache/commons/monitoring/graphite/GraphiteDataStore.java Mon Oct 14 06:39:58 2013 @@ -38,6 +38,8 @@ public class GraphiteDataStore extends B private static final String GAUGE_PREFIX = "gauge-"; private static final String COUNTER_PREFIX = "counter-"; private static final char SEP = '-'; + private static final char SPACE_REPLACEMENT_CHAR = '_'; + private static final char SPACE = ' '; @Override protected void pushCountersByBatch(final Repository instance) { @@ -48,7 +50,7 @@ public class GraphiteDataStore extends B for (final Counter counter : instance) { final Counter.Key key = counter.getKey(); - final String prefix = COUNTER_PREFIX + key.getRole().getName() + SEP + key.getName() + SEP; + final String prefix = noSpace(COUNTER_PREFIX + key.getRole().getName() + SEP + key.getName() + SEP); for (final MetricData data : MetricData.values()) { GRAPHITE.push( @@ -67,12 +69,16 @@ public class GraphiteDataStore extends B @Override public void addToGauge(final Gauge gauge, final long time, final double value) { try { - GRAPHITE.simplePush(GAUGE_PREFIX + gauge.role().getName(), value, time); + GRAPHITE.simplePush(GAUGE_PREFIX + noSpace(gauge.role().getName()), value, time); } catch (final IOException e) { LOGGER.log(Level.SEVERE, e.getMessage(), e); } } + private static String noSpace(final String s) { + return s.replace(SPACE, SPACE_REPLACEMENT_CHAR); + } + @Override public Map<Long, Double> getGaugeValues(final GaugeValuesRequest gaugeValuesRequest) { return Collections.emptyMap(); // when using graphite we expect the user to use Graphite to render metrics