一、构建和配置微服务
1、导入pom坐标依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.1.4</version>
</dependency>
这里引入了 io.micrometer 的 micrometer-registry-prometheus 依赖以及 spring-boot-starter-actuator 依赖,因为该包对 Prometheus 进行了封装,可以很方便的集成到项目中
2、配置application.yml
management:
endpoints:
web:
exposure:
include:
- metrics
- prometheus
metrics:
tags:
application: ${spring.application.name}
export:
prometheus:
step: 1m
descriptions: true
这里 management.endpoints.web.exposure.include 配置为开启 Actuator 服务,因为Spring Boot Actuator 会自动配置一个 URL 为 /actuator/Prometheus 的 HTTP 服务来供 Prometheus 抓取数据,不过默认该服务是关闭的,该配置将打开 Actuator 服务。management.metrics.tags.application 配置会将该工程应用名称添加到计量器注册表的 tag 中去,方便后边 Prometheus 根据应用名称来区分不同的服务
3、在工程启动主类中添加 Bean
//监控 JVM 性能指标信息
@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName){
return registry -> registry.config().commonTags("application", applicationName);
}
最后,启动服务,浏览器访问 http://ip:port/actuator/prometheus
如果可以看到应用的 一系列不同类型 metrics 信息,代表已经配置好了
二、配置 Prometheus 监控
配置prometheus .yml
- job_name: 'application'
scrape_interval: 5s
metrics_path: '/actuator/prometheus'
file_sd_configs:
-files:['/usr/local/prometheus/applicationgroups/*.json']
这里采用 file_sd_configs 方式动态服务发现
$ vim applicationgroups/application.json
[
{
"targets": [
#微服务ip和端口
"ip:port"
],
"labels": {
#微服务名称
"instance": "springboot2-prometheus",
"service": "springboot2-prometheus-service"
}
}
]
重启 Prometheus 服务
systemctl restart prometheus
访问Prometheus——》status——》targets
查看 Prometheus UI 界面确认 Target 是否添加成功。
三、导入监控 的 Dashboard 模板
模板编号为 4701
导入完毕后,就可以看到 JVM (Micrometer) 各种类型指标监控图形化以后的页面。