2

我正在使用 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 无前缀,而其他指标则被发送。

我不明白是什么原因造成的。应该在注入指标注册表之前应用我的石墨定制器,对吗?

4

1 回答 1

1

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

于 2018-07-04T02:03:09.810 回答