本文示例代码已上传至github:
https://github.com/ZhaiBo/microservice-scaffold
本文参考资料:
Prometheus文档
Grafana文档
Docker方式安装Prometheus + Grafana
克隆
使用github上开源项目快速搭建Prometheus + Grafana环境。
git clone https://github.com/vegasbrianc/prometheus.git
修改配置
修改下图配置文件内容,在scrape_configs属性下添加一个job,去抓取SpringBoot的metrics数据。
- job_name: 'user-svc'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['host.docker.internal:8087'] # 这里修改为需要抓取数据的应用端口
labels:
application: 'user-svc'
启动
直接后台启动。
docker-compose up -d
验证
访问Prometheus控制台:http://localhost:9090/targets
,
此时,由于SpringBoot应用还未配置启动,可以看到上面配置的job是DOWN状态。
SpringBoot应用集成Prometheus
引入以下maven包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
修改application.yml
添加以下配置:
management:
endpoints:
promethus:
enable: true
web:
exposure:
include: '*'
启动验证
启动SpringBoot应用,访问:http://localhost:8087/actuator/prometheus
看到返回下面信息,就说明配置已经生效了。
再去Prometheus控制台查看,可以看到我们配置的Job状态已经是UP状态:
Grafana配置数据源
访问Grafana控制台:
地址:localhost:3000
,用户名/密码:admin/foobar。用户名密码可去/grafana/config.monitoring下修改。登录成功后配置Prometheus的数据源:
Grafana导入Dashborad
Grafana官网提供现成的Jvm Dashborad,可去此链接查看:https://grafana.com/grafana/dashboards/4701,
将复制到的Id填入:
选择prometheus数据源:
完成后可以看到jvm相关的dashborad了:
总结
Prometheus支持自定义metrics。
Grafana还提供了AlertManager、自定义Dashboard等很丰富的功能,需要使用可去官方文档了解。