我按照此处的文档(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工作正常。
答案 0 :(得分:4)
你可以检查一些事情:
您是否添加了必要的MeterRegistry
实施,以便Micrometer
检测库的Prometheus“子系统”存在? (Micrometer库正在为Spring Boot 2.0中的Actuator实现提供动力)
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
如果没有特定的MeterRegistry
实施,您最终会得到/actuator/metrics
实施提供支持的常规SimpleMeterRegistry
端点。
您是否实际将所提及的属性放在application.[yml,yaml]
文件中而不是application.properties
? (我只是偶然发现了使用Spring Initializr生成的新演示项目。)
答案 1 :(得分:3)
我遇到了同样的问题,并设法通过在配置中添加“include”标记来修复它:
management: metrics: export: prometheus: enabled: true endpoints: web: exposure: include: prometheus,info,metrics,threaddump
答案 2 :(得分:3)
有点晚 - 但只是为了记录 - 我可以验证它现在在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解释的那样。
答案 3 :(得分:2)
即使您的类路径中有>micrometer-registry-prometheus
,默认情况下Spring Boot也不会公开Prometheus端点。
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
您需要通过以下属性来明确告诉Spring Boot公开Prometheus端点。
management.endpoints.web.exposure.include=health,info,metrics,prometheus
答案 4 :(得分:0)
当我将应用程序从1.5升级到2.1.3时遇到了同样的问题。可以通过遵循以下Spring Boot 2.0 Prometheus Backward Compatibility
进行修复您需要在依赖项列表中添加implementation
并将其添加到SpringBootApplication类中
micrometer-registry-prometheus