【发布时间】:2021-01-14 17:40:53
【问题描述】:
我正在尝试使用千分尺从我的 Spring Boot 应用程序中公开指标。
以下配置由于某种原因不起作用:
@Configuration(proxyBeanMethods = false)
@AutoConfigureAfter({ MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class })
@ConditionalOnClass(MeterRegistry.class)
@ConditionalOnBean(MeterRegistry.class)
public class SuperTestAutoConfig {
@Bean
public Object testBean() {
return new Object();
}
}
春天说:
SuperTestAutoConfig:
Did not match:
- @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) did not find any beans of type io.micrometer.core.instrument.MeterRegistry (OnBeanCondition)
Matched:
- @ConditionalOnClass found required class 'io.micrometer.core.instrument.MeterRegistry' (OnClassCondition)
但对于完全相同的注释配置JvmMetricsAutoConfiguration,它可以完美运行:
@Configuration(proxyBeanMethods = false)
@AutoConfigureAfter({ MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class })
@ConditionalOnClass(MeterRegistry.class)
@ConditionalOnBean(MeterRegistry.class)
public class JvmMetricsAutoConfiguration {}
日志说:
JvmMetricsAutoConfiguration matched:
- @ConditionalOnClass found required class 'io.micrometer.core.instrument.MeterRegistry' (OnClassCondition)
- @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found bean 'prometheusMeterRegistry' (OnBeanCondition)
【问题讨论】:
-
也许改变问题以包括自动配置细节,因为这是关键部分
标签: java spring spring-boot spring-boot-actuator micrometer