Prometheus是一个开源监控报警系统和时序列数据库,通常会使用Grafana来美化数据展示。
由于是学习研究使用,这里通过docker快速安装环境。
docker-compose-node-export.yml
docker-compose-alertmanager.yml
alertmanager.yml
docker-compose-prometheus.yml
docker-compose-grafana.yml
添加数据源(Prometheus)
访问:http://localhost:30000/ , 默认用户名:admin,密码:admin
Grafana通过PromQL查询语句从Prometheus拉取数据,并有Pannel进行渲染,一个个Grafana Pannel 组成一个Grafana DashBoard。
可以从官网下载已经写好的Grafana DashBoard文件,导入到我们Grafana系统就可以直接使用。
推荐的Grafana DashBoard
导入Grafana DashBoard
官方自带的Spring Boot 2.1 Statistics Dashboard没有展示第三方请求的数据报表,我们以此为例,添加第三方请求的Client Request Count报表和Client Response Time报表。
Client Request Count
irate(http_client_requests_seconds_count{instance="$instance", application="$application", uri!~".*actuator.*"}[5m])
注意:应用中的Meter的名称必须为http.client.requests
Client Response Time
irate(http_client_requests_seconds_sum{instance="$instance", application="$application",uri!~".*actuator.*"}[5m]) / irate(http_client_requests_seconds_count{instance="$instance", application="$application",uri!~".*actuator.*"}[5m])
Metrics(译:指标,度量)
Micrometer提供了与供应商无关的接口,包括 timers(计时器), gauges(量规), counters(计数器), distribution summaries(分布式摘要), long task timers(长任务定时器)。它具有维度数据模型,当与维度监视系统结合使用时,可以高效地访问特定的命名度量,并能够跨维度深入研究。
基于OkHttpMetricsEventListener
可以有好的对OkHttp Client
的请求进行监控。
配置OkHttp Client事件监听
原理:OkHttpMetricsEventListener.java
【2】Centos7.X 搭建Prometheus+node-exporter+Grafana实时监控平台
【5】SpringBoot+Prometheus:微服务开发中自定义业务监控指标的几点经验