解决SpringBoot集成actuator和Prometheus访问报404

在搭建actuator+Prometheus监控时遇到的问题

解决Spring Boot集成actuator和Prometheus访问报404

前言

最近在尝试搭建 spring actuator + Prometheus 的接口健康监测系统,在测试 actuator 的时候遇到了一个问题,就是访问 localhost:8088/api/actuator/health 是正常的,但是访问 localhost:8088/api/actuator/prometheus 页面就会404

404页面

问题寻因

依赖

我先检查了依赖是否导入的正确

1
2
3
4
5
6
7
8
9
10
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.7.9</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.12.4</version>
</dependency>

看起来没什么问题,这里需要导入两个依赖,一个是spring-boot-starter-actuator还有就是micrometer-registry-prometheus

配置文件

application.yaml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#spring actuator配置
management:
endpoints:
web:
exposure:
include: '*'

endpoint:
health:
show-details: always

metrics:
tags:
application: actuator-demo

好像也没什么问题,这里为了方便把所有端口都暴露了,实际在生产环境中应该仔细选择要暴露的端口,不然会有安全问题

问题解决

那好像都没什么问题啊,后来通过一顿搜索,终于发现是依赖版本的原因

项目使用的 spring boot 版本是2.7.9

项目依赖

而 Spring Boot 2.7 对应的Micrometer版本是1.9

release-notes

这在Spring Boot 2.7 Release Notes · spring-projects/spring-boot Wiki可以查询

修改好后再访问localhost:8088/api/actuator/prometheus

就可以看到正常输出了以 Prometheus 的标准形式输出的项目信息