我正在使用 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 无前缀,而其他指标则被发送。
我不明白是什么原因造成的。应该在注入指标注册表之前应用我的石墨定制器,对吗?