1、新建一个springboot项目
(我这里版本是:2.2.4.RELEASE),pom中加入如下必要依赖:
<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>
2、配置:
server:
port: 8080
spring:
application:
name: books-service
management:
endpoints:
web:
exposure:
include: '*'
base-path: /actuator
endpoint:
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);
}
@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName) {
return (registry) -> registry.config().commonTags("application", applicationName);
}
}
3、打包,将jar上传到安装Prometheus的服务器上
mvn clean package
java -jar demo.jar
问题:起初使用最新版本1.8.5,启动报错(java.lang.ClassNotFoundException: io.micrometer.core.instrument.config.validate.Validated),最后是将版本指定去掉,发现自动获取的是1.3.2版本。
4、Prometheus 接入工程
修改配置文件prometheus.yml 来接入该springboot工程
在scrape_configs下,增加一个服务,和prometheus服务并列。
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "books-service"
metrics_path: "/books-service/actuator/prometheus"
scheme: "http"
static_configs:
- targets: ["localhost:8080"]
5、在Prometheus查看结果
访问 http://yourIP:9090/targets 查看Targets,如下,发现该springBoot已经存在了
查看服务发现,如下图,该springboot服务被自动注册上了。
6、问题:
如果出现 ““INVALID” is not a valid start token” 错误
1)检查prometheus.yml是否有格式错误,或者少配置了项目
2)检查你后台是否拦截了/actuator/**/**
的路径,也就是是否加了权限,得将/actuator/**/**
加入白名单。
END
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)