在 spring-boot 中为石墨千分尺事件添加前缀

Add prefix to graphite micrometer event in spring-boot

我正在使用 spring-boot 2graphite。我想为我的所有指标添加前缀。

@Bean
public MeterRegistry graphiteRegistsry() {
    return new GraphiteMeterRegistry(
           GraphiteConfig.DEFAULT, Clock.SYSTEM,
           (id, convention) -> "prefix." + 
           HierarchicalNameMapper.DEFAULT.toHierarchicalName(id,convention));
}

如果我使用这段代码,这实际上是添加前缀,但也会创建一些没有前缀的指标。似乎他们几乎所有的指标都是重复的。

如何添加这个前缀?并且所有从这个应用程序转到石墨的指标都将包含前缀?

谢谢。

首先,您可以使用 MeterRegistryCustomizer 添加一个通用标签:

@Configuration
public class MetricsConfig {
  @Bean
  public MeterRegistryCustomizer<MeterRegistry> commonTags() {
    return r -> r.config().commonTags("commonTag", "somePrefix");
  }
}

其次,扩展您的应用程序属性,将此标记转换为前缀:

management.metrics.export.graphite.tags-as-prefix=commonTag

请看详细解释here