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 注册表。
我正在使用 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 注册表。