Prometheus端点不工作Spring Boot 2.0.0.RC1 Spring Webflux已启用

问题描述 投票:4回答:4

我按照这里的文档(https://docs.spring.io/spring-boot/docs/2.0.0.RC1/reference/htmlsingle/#production-ready-endpoints-enabling-endpoints)确保application.yml文件具有以下内容

management:
  metrics:
    export:
      prometheus:
        enabled: true
  endpoints:
    web:
      expose:
        health, info, httptrace, metrics, threaddump, mappings, prometheus

根据文档(https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/actuator-api/html/#prometheus),以下内容不起作用。

curl 'http://localhost:8080/actuator/prometheus' -i

我得到404 Handler映射未找到异常。有人可以让我知道如何启用prometheus端点进行抓取以及我需要使用哪个URL端点进行测试?

o.s.w.r.r.m.a.RequestMappingHandlerMapping[276] - Did not find handler method for [/actuator/prometheus]

所有其他端点health,info,httptrace,threaddump,mappings工作得非常好。

spring spring-boot spring-boot-actuator spring-webflux
4个回答
4
投票

有点晚 - 但只是为了记录 - 我可以验证这现在在2.0.0.RELEASE。

依赖性(gradle):

compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('io.micrometer:micrometer-registry-prometheus')

application.yaml(reference

management:
  endpoints:
    web:
      exposure:
        include: health,info,prometheus

我也用RC1进行了测试 - 由于某种原因,prometheus端点没有出现 - 就像@ROCKY解释的那样。


4
投票

你可以检查一些事情:

  1. 您是否添加了必要的MeterRegistry实现,以便存在Micrometer仪器库的Prometheus“子系统”? (从Spring Boot 2.0开始,Micrometer库为Actuator实现提供动力) <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> 如果没有特定的MeterRegistry实现,您最终会得到由/actuator/metrics实现提供支持的常规SimpleMeterRegistry端点。
  2. 你有没有把提到的属性放在application.[yml,yaml]文件而不是application.properties? (我只是偶然发现了使用Spring Initializr生成的一个新的演示项目。)

3
投票

我遇到了同样的问题,并设法通过在配置中添加“include”标签来修复它:

management:
  metrics:
    export:
      prometheus:
        enabled: true
  endpoints:
    web:
      exposure:
        include: prometheus,info,metrics,threaddump

0
投票

当我将我的应用程序从1.5升级到2.1.3时出现同样的问题。能够通过跟随这个Spring Boot 2.0 Prometheus Backward Compatibility解决它

您需要在依赖项列表中使用micrometer-registry-prometheus,并在下面添加到SpringBootApplication类中

@Bean
public CollectorRegistry collectorRegistry() {
    return CollectorRegistry.defaultRegistry;
}
© www.soinside.com 2019 - 2024. All rights reserved.