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;
import io.micrometer.core.instrument.Clock;
import io.micrometer.core.instrument.util.HierarchicalNameMapper;
import io.micrometer.graphite.GraphiteConfig;
import io.micrometer.graphite.GraphiteHierarchicalNameMapper;
import io.micrometer.graphite.GraphiteMeterRegistry;
import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration;
......@@ -66,8 +67,8 @@ public class GraphiteMetricsExportAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public HierarchicalNameMapper hierarchicalNameMapper() {
return HierarchicalNameMapper.DEFAULT;
public HierarchicalNameMapper hierarchicalNameMapper(GraphiteConfig graphiteConfig) {
return new GraphiteHierarchicalNameMapper(graphiteConfig.tagsAsPrefix());
}
}
......@@ -19,6 +19,7 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.graphite;
import java.util.Map;
import io.micrometer.core.instrument.Clock;
import io.micrometer.core.instrument.Tags;
import io.micrometer.graphite.GraphiteConfig;
import io.micrometer.graphite.GraphiteMeterRegistry;
import org.junit.Test;
......@@ -39,6 +40,7 @@ import static org.mockito.Mockito.verify;
* Tests for {@link GraphiteMetricsExportAutoConfiguration}.
*
* @author Andy Wilkinson
* @author Stephane Nicoll
*/
public class GraphiteMetricsExportAutoConfigurationTests {
......@@ -52,6 +54,20 @@ public class GraphiteMetricsExportAutoConfigurationTests {
.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
public void autoConfiguresItsConfigAndMeterRegistry() {
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