Spring Boot 2-一些Graphite Metrics未从定制程序接收通用标签

时间:2018-07-03 23:11:02

标签: spring spring-boot spring-boot-actuator micrometer

我正在使用Spring Boot 2 + Graphite报告,并且有一些度量标准正在接收公共标签,而有些则没有。

除了名字,我有两个相同的bean,它们都用相同的代码创建了一个计时器。其中一个首先创建,并且不应用commonTags,另一个创建。例如,

@Autowired
MeterRegistry meterRegistry

@Bean Foo doesNotGetCommonTags() {
    meterRegistry.timer(...);
    ...
}

@Bean MeterRegistryCustomizer<GraphiteMeterRegistry> graphiteCustomizer() {
   return r -> r.config().commonTags(...);
}

@Bean Foo getsCommonTags() {
    meterRegistry.timer(...);
    ...
}

这似乎与bean的创建顺序有关,但是我无法弄清楚在创建仪表之前如何确保注册表完全自定义。我使用通用标签作为前缀,因此导致某些度量标准以不带前缀的形式发送到Graphite,而另一些度量标准则为。

我不知道是什么原因造成的。应该在注入指标注册表之前应用我的graphiteCustomizer,对吧?

1 个答案:

答案 0 :(得分:0)

我的解决方法(我认为不是完整的解决方案)是不使用MeterRegsitryCustomizer,而是使用所需的自定义项自行创建Graphite注册表。