(我这里版本是:2.2.4.RELEASE),pom中加入如下必要依赖:
<!--https://micrometer.io/docs/registry/prometheus-->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
server:
port: 8080
spring:
application:
name: books-service
management:
endpoints:
web:
exposure:
include: '*'
# 监控路径前缀
base-path: /actuator
endpoint:
# 开启允许远程shutdown,通过post请求。
shutdown:
enabled: true
health:
show-details: always
metrics:
tags:
application: ${spring.application.name}
3、实例化MeterRegistryCustomizer
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
/**
* 实例化MeterRegistryCustomizer
*/
@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName) {
return (registry) -> registry.config().commonTags("application", applicationName);
}
}
mvn clean package
java -jar demo.jar
问题:起初使用最新版本1.8.5,启动报错(java.lang.ClassNotFoundException: io.micrometer.core.instrument.config.validate.Validated),最后是将版本指定去掉,发现自动获取的是1.3.2版本。


修改配置文件prometheus.yml 来接入该springboot工程
在scrape_configs下,增加一个服务,和prometheus服务并列。
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "books-service"
#注意:我这边是springboot加了配置server.servlet.context-path为/books-service,所以有/books-service前缀哈,如果没有该配置,只有/actuator/prometheus
metrics_path: "/books-service/actuator/prometheus"
scheme: "http"
static_configs:
- targets: ["localhost:8080"]
访问 http://yourIP:9090/targets 查看Targets,如下,发现该springBoot已经存在了

查看服务发现,如下图,该springboot服务被自动注册上了。

如果出现 ““INVALID” is not a valid start token” 错误
1)检查prometheus.yml是否有格式错误,或者少配置了项目
2)检查你后台是否拦截了/actuator/**/**的路径,也就是是否加了权限,得将/actuator/**/**加入白名单。