Commit 7c36c003 authored by Stephane Nicoll's avatar Stephane Nicoll

Fix default HierarchicalNameMapper implementation for Graphite

Closes gh-12557
parent 958f3d5b
...@@ -19,6 +19,7 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.graphite; ...@@ -19,6 +19,7 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.graphite;
import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Clock;
import io.micrometer.core.instrument.util.HierarchicalNameMapper; import io.micrometer.core.instrument.util.HierarchicalNameMapper;
import io.micrometer.graphite.GraphiteConfig; import io.micrometer.graphite.GraphiteConfig;
import io.micrometer.graphite.GraphiteHierarchicalNameMapper;
import io.micrometer.graphite.GraphiteMeterRegistry; import io.micrometer.graphite.GraphiteMeterRegistry;
import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration;
...@@ -66,8 +67,8 @@ public class GraphiteMetricsExportAutoConfiguration { ...@@ -66,8 +67,8 @@ public class GraphiteMetricsExportAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public HierarchicalNameMapper hierarchicalNameMapper() { public HierarchicalNameMapper hierarchicalNameMapper(GraphiteConfig graphiteConfig) {
return HierarchicalNameMapper.DEFAULT; return new GraphiteHierarchicalNameMapper(graphiteConfig.tagsAsPrefix());
} }
} }
...@@ -19,6 +19,7 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.graphite; ...@@ -19,6 +19,7 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.graphite;
import java.util.Map; import java.util.Map;
import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Clock;
import io.micrometer.core.instrument.Tags;
import io.micrometer.graphite.GraphiteConfig; import io.micrometer.graphite.GraphiteConfig;
import io.micrometer.graphite.GraphiteMeterRegistry; import io.micrometer.graphite.GraphiteMeterRegistry;
import org.junit.Test; import org.junit.Test;
...@@ -39,6 +40,7 @@ import static org.mockito.Mockito.verify; ...@@ -39,6 +40,7 @@ import static org.mockito.Mockito.verify;
* Tests for {@link GraphiteMetricsExportAutoConfiguration}. * Tests for {@link GraphiteMetricsExportAutoConfiguration}.
* *
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Stephane Nicoll
*/ */
public class GraphiteMetricsExportAutoConfigurationTests { public class GraphiteMetricsExportAutoConfigurationTests {
...@@ -52,6 +54,20 @@ public class GraphiteMetricsExportAutoConfigurationTests { ...@@ -52,6 +54,20 @@ public class GraphiteMetricsExportAutoConfigurationTests {
.doesNotHaveBean(GraphiteMeterRegistry.class)); .doesNotHaveBean(GraphiteMeterRegistry.class));
} }
@Test
public void autoConfiguresUseTagsAsPrefix() {
this.contextRunner.withUserConfiguration(BaseConfiguration.class)
.withPropertyValues("management.metrics.export.graphite.tags-as-prefix=app")
.run((context) -> {
assertThat(context).hasSingleBean(GraphiteMeterRegistry.class);
GraphiteMeterRegistry registry = context.getBean(
GraphiteMeterRegistry.class);
registry.counter("test.count", Tags.of("app", "myapp"));
assertThat(registry.getDropwizardRegistry().getMeters())
.containsOnlyKeys("myapp.testCount");
});
}
@Test @Test
public void autoConfiguresItsConfigAndMeterRegistry() { public void autoConfiguresItsConfigAndMeterRegistry() {
this.contextRunner.withUserConfiguration(BaseConfiguration.class) this.contextRunner.withUserConfiguration(BaseConfiguration.class)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment