如何解决“java.lang.illegalargumentException收集器已注册提供名称”?

Ree*_*shi 2 metrics health-monitoring spring-boot prometheus spring-micrometer

强文本

如何解决“java.lang.illegalargumentException收集器已注册提供名称”?仪表注册表类如下:

    @Configuration
public class RegistryConfig {

    @Bean
    public MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {
        return registry -> registry.config().commonTags("app.name", "appname");
    }


    @Bean
    public CountedAspect countedAspect(MeterRegistry registry) {
        return new CountedAspect(registry);
    }

    @Bean
    public TimedAspect timedAspect(MeterRegistry meterRegistry) {
        return new TimedAspect(meterRegistry);
    }

}
Run Code Online (Sandbox Code Playgroud)

我找到了一个链接,建议将您的指标设为静态: https://github.com/prometheus/client_java/issues/279 请帮助我到底需要做什么?我需要在哪里设置静态?

mre*_*rek 5

如果您正在使用CollectorRegistry.defaultRegistry,那么不要忘记在运行/重新加载之间清除它:

CollectorRegistry.defaultRegistry.clear();
Run Code Online (Sandbox Code Playgroud)