Spring Boot 2 - 一些 Graphite Metrics 没有从定制器接收通用标签

Spring Boot 2 - Some Graphite Metrics not receiving common tags from customizer

我正在使用 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 应该在注入指标注册表之前应用,对吗?

我的解决方法(我不认为这是一个完整的解决方案)是不使用 MeterRegsitryCustomizer 而是使用我想要的定制自己创建 Graphite 注册表。