我正在使用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,对吧?
答案 0 :(得分:0)
我的解决方法(我认为不是完整的解决方案)是不使用MeterRegsitryCustomizer
,而是使用所需的自定义项自行创建Graphite注册表。