From 9a5346f29c80067776b8c22556f0e9eb60bdb97b Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Tue, 18 Apr 2017 10:39:54 +0200 Subject: [PATCH] Polish "Fix statsd metrics collection for names with ":"" Closes gh-8906 --- .../actuate/metrics/statsd/StatsdMetricWriter.java | 8 ++++---- .../metrics/statsd/StatsdMetricWriterTests.java | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/statsd/StatsdMetricWriter.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/statsd/StatsdMetricWriter.java index 1719383611..ee8bfaec9e 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/statsd/StatsdMetricWriter.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/statsd/StatsdMetricWriter.java @@ -88,7 +88,8 @@ public class StatsdMetricWriter implements MetricWriter, Closeable { @Override public void increment(Delta delta) { - this.client.count(sanitizeMetricName(delta.getName()), delta.getValue().longValue()); + this.client.count(sanitizeMetricName(delta.getName()), + delta.getValue().longValue()); } @Override @@ -119,13 +120,12 @@ public class StatsdMetricWriter implements MetricWriter, Closeable { } /** - * The statsd server does not allow ":" in metric names. Since the the statsd client - * is not dealing with this, we have to sanitize the metric name. + * Sanitize the metric name if necessary. * @param name The metric name * @return The sanitized metric name */ private String sanitizeMetricName(String name) { - return name.replace(":", ""); + return name.replace(":", "-"); } private static final class LoggingStatsdErrorHandler diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/statsd/StatsdMetricWriterTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/statsd/StatsdMetricWriterTests.java index 6e1043caea..4bb0965243 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/statsd/StatsdMetricWriterTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/statsd/StatsdMetricWriterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -100,16 +100,16 @@ public class StatsdMetricWriterTests { @Test public void incrementMetricWithInvalidCharsInName() throws Exception { - this.writer.increment(new Delta<>("counter.fo:o", 3L)); + this.writer.increment(new Delta("counter.fo:o", 3L)); this.server.waitForMessage(); - assertThat(this.server.messagesReceived().get(0)).isEqualTo("me.counter.foo:3|c"); + assertThat(this.server.messagesReceived().get(0)).isEqualTo("me.counter.fo-o:3|c"); } @Test public void setMetricWithInvalidCharsInName() throws Exception { - this.writer.set(new Metric<>("gauge.f:o:o", 3L)); + this.writer.set(new Metric("gauge.f:o:o", 3L)); this.server.waitForMessage(); - assertThat(this.server.messagesReceived().get(0)).isEqualTo("me.gauge.foo:3|g"); + assertThat(this.server.messagesReceived().get(0)).isEqualTo("me.gauge.f-o-o:3|g"); } private static final class DummyStatsDServer implements Runnable {