From 28f890989d2fb44fd8dce2deebde0c77f73828b8 Mon Sep 17 00:00:00 2001 From: Bertrand Renuart Date: Thu, 28 May 2015 09:48:28 +0200 Subject: [PATCH 1/2] Allow for periods in metric name (see gh354) --- .../cloud/netflix/servo/DefaultServoMetricNaming.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/servo/DefaultServoMetricNaming.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/servo/DefaultServoMetricNaming.java index ed53b845..0df15966 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/servo/DefaultServoMetricNaming.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/servo/DefaultServoMetricNaming.java @@ -48,7 +48,7 @@ public class DefaultServoMetricNaming implements ServoMetricNaming { private String handleMetric(MonitorConfig config, TagList tags) { String type = cleanValue(tags.getTag(DataSourceType.KEY), false); String instanceName = cleanValue(tags.getTag("instance"), false); - String name = cleanupIllegalCharacters(config.getName(), false); + String name = cleanupIllegalCharacters(config.getName(), true); String statistic = cleanValue(tags.getTag("statistic"), false); StringBuilder nameBuilder = new StringBuilder(); @@ -74,7 +74,7 @@ public class DefaultServoMetricNaming implements ServoMetricNaming { String domain = cleanValue(tags.getTag(JMX_DOMAIN_KEY), true); String type = cleanValue(tags.getTag("Jmx.type"), false); String instanceName = cleanValue(tags.getTag("Jmx.instance"), false); - String name = cleanValue(tags.getTag("Jmx.name"), false); + String name = cleanValue(tags.getTag("Jmx.name"), true); String fieldName = cleanupIllegalCharacters(config.getName(), false); StringBuilder nameBuilder = new StringBuilder(); From 68c731d668b3b27c84850613ee995f316311d837 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Thu, 28 May 2015 09:01:53 -0600 Subject: [PATCH 2/2] added test for metrics with period in name --- .../netflix/servo/DefaultServerMetricNamingTests.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/servo/DefaultServerMetricNamingTests.java b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/servo/DefaultServerMetricNamingTests.java index 16e89387..616e5ee4 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/servo/DefaultServerMetricNamingTests.java +++ b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/servo/DefaultServerMetricNamingTests.java @@ -39,6 +39,13 @@ public class DefaultServerMetricNamingTests { assertThat(name, is(equalTo("servo.testmetric"))); } + @Test + public void nameWithPeriodWorks() { + MonitorConfig config = MonitorConfig.builder("test.Metric") .build(); + String name = naming.getName(new Metric(config, System.currentTimeMillis(), 0)); + assertThat(name, is(equalTo("servo.test.metric"))); + } + @Test public void typeTagWorks() { MonitorConfig config = MonitorConfig.builder("testMetric")