自 Spring Boot 2.0.2-RELEASE 以来指标端点不可用
Metrics endpoint isn't available since Spring Boot 2.0.2-RELEASE
从 Spring 启动 2.0.2-RELEASE 执行器 'metrics' 即使使用以下配置端点也不可用:
management:
endpoints.web.exposure.include: "*"
相同的配置通过 Spring Boot 2.0.0-RELEASE
公开指标端点
pom.xml:
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
...
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
</dependency>
....
有解决此问题的想法吗?
最后我发现 org.springframework.boot.actuate.metrics.MetricsEndpoint
的实例应该存在于 Spring 上下文中,以便让 Actuator 显示 '/metrics' 端点。
org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration
负责创建 MetricsEndpoint 的实例,但由于某种原因它从未创建它。
所以,我在自己的配置中创建了这个 bean:
@Bean
public MetricsEndpoint metricsEndpoint(MeterRegistry registry) {
return new MetricsEndpoint(registry);
}
它解决了问题,但我不确定这是最好的解决方案。
我做了一个类似的样本。我的application.yml是这样的
从 Spring 启动 2.0.2-RELEASE 执行器 'metrics' 即使使用以下配置端点也不可用:
management:
endpoints.web.exposure.include: "*"
相同的配置通过 Spring Boot 2.0.0-RELEASE
公开指标端点pom.xml:
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
...
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
</dependency>
....
有解决此问题的想法吗?
最后我发现 org.springframework.boot.actuate.metrics.MetricsEndpoint
的实例应该存在于 Spring 上下文中,以便让 Actuator 显示 '/metrics' 端点。
org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration
负责创建 MetricsEndpoint 的实例,但由于某种原因它从未创建它。
所以,我在自己的配置中创建了这个 bean:
@Bean
public MetricsEndpoint metricsEndpoint(MeterRegistry registry) {
return new MetricsEndpoint(registry);
}
它解决了问题,但我不确定这是最好的解决方案。
我做了一个类似的样本。我的application.yml是这样的