Prometheus官网:https://prometheus.io/docs/introduction/first_steps/ Grafana官网:https://grafana.com/docs/grafana/latest/
SpringBoot+Prometheus+Grafana是目前比较常用的应用监控方案,由Springboot项目暴露指标,Prometheus进行信息采集,Grafana实现可视化监控与报警。
一、Prometheus安装
安装包下载地址:https://prometheus.io/download/ 下载windows64位,解压可用,解压后进入目录运行premetheus.exe,访问http://localhost:9090/即可,需要查看监控的对象列表可以进入status > targets查看
二、Springboot使用Prometheus
1.Springboot项目添加prometheus的Maven依赖
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.6.4</version>
</dependency>
2.Springboot项目 yml 配置文件设置
spring:
application:
name: cloud-reservoirs
management:
endpoints:
web:
exposure:
include: "*"
metrics:
tags:
application: ${spring.application.name}
3.编辑 Prometheus 的 prometheus.yml 文件 进入Prometheus的解压目录编辑prometheus.yml文件,添加如下配置
- job_name: 'cloud-reservoirs'
scrape_interval: 5s
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['localhost:10024']
4.重新启动premetheus.exe 重新启动premetheus.exe,查看http://localhost:9090 status > targets 访问 http://localhost:10024/actuator/prometheus 可以查看各项指标 5.访问Graph 访问Graph,在搜索框输入: http_server_requests_seconds_count,然后点击Execute,可以看到抓起metric的记录 接着访问我们项目的任一接口,再次查看Graph,可以看到新增了一条记录 6.qps统计
sum(rate(http_server_requests_seconds_count{application="cloud-reservoirs"}[10s]))
rate: 用于统计增长趋势,要求上报的Metric为Counter类型(只增不减) irate: 与rate相似,区别在于rate统计的是一段时间内的平均增长速率,无法反应这个时间窗口内的突发情况(即瞬时高峰),irate通过区间向量中最后两个样本数据来计算增长速率,但是当选用的区间范围较大时,可能造成不小的偏差 sum: 求和,适用于统计场景 更多内置函数,可以参考: PromQL内置函数 或参考官网 https://prometheus.io/docs/prometheus/latest/querying/operators/
7.耗时统计 除了qps,另外一个经常关注的指标就是rt了,如上面接口的平均rt,通过两个Metric的组合来实现
sum(rate(http_server_requests_seconds_sum{application="cloud-reservoirs"}[10s])) / sum(rate(http_server_requests_seconds_count{application="cloud-reservoirs"}[10s]))
将sum聚合去掉则可以看到各接口的访问情况
三、Grafana安装与使用
1.Grafana安装 安装包下载地址:https://grafana.com/grafana/download?platform=windows windows 64位下载grafana-enterprise-8.4.7.windows-amd64.msi,直接运行安装,安装完成后进入grafana/bin目录下,双击运行garafana-server.exe,访问地址http://localhost:3000/,默认用户名密码admin/admin 2.Grafana使用 (1)grafana启动之后,配置数据源Promethues 点击首界面的 DATA SOURCES 接着选择 Prometheus 然后输入 Prometheus 服务器地址,点击Save & test (2)给SpringBoot应用配置面板 可以直接使用现成的模板,比如 12856,这需要到官网去查找: https://grafana.com/grafana/dashboards?dataSource=prometheus&search=spring 选择一个,点进去之后,右边的 Copy ID toClipboard 对应的数字就是我们需要的 拿到ID后,回到Grafana界面,找到如下Import项 输入ID,点击输入框右边的 Load 选择我们前边配置的数据源,点击 Import 配置后面板如下 over ~
|