59、Prometheus-Grafana-绘图管理、自定义绘图
1、绘图基础
1.1、简介
我们知道Grafana是一个可视化的集成套件,我们可以借助于现成的dashboard模板进行通用的界面展示,但是对于一些特殊的监控项的展示来说,
我们还是需要实现独有的界面展示,而这就需要借助于Grafana的图形类型来实现特定的展示效果,
对于绘图时候用到的可视化功能主要有两种方式:默认可视化方式和可视化插件。
1.2、可视化功能方式
1.2.1、默认可视化方式
1.2.2、可视化插件
1.3、图形展示
可以看到,这张图里面有各种信息展示的界面,在概览信息展示区,除了一些基本信息的展示外,在首行的右上角区域还有图形展示数据的时间选择区域范围,
因为我们曾经说过prometheus是基于时间序列的数据就那些监控的,所以时间维度的选择,对图形的展示限制非常大。
1.4、图表详细操作
1.4.1、View
View 当前Graph的综合展示
1.4.2、Edit
Edit Graph的属性编辑
1.4.3、Share
Share 表示当前Graph对外分享时候的一些配置属性
1.4.4、Explore
explore 类似于view,综合展示更详细的信息
1.4.5、Inspect
查看更具体的数据
1.4.6、more
More 这部分包含了对当前图形的一些扩展信息,比如切割、复制、json数据展示、数据导出、触发器
1.4.7、remove
删除图表
2、绘图实践
2.1、案例需求
2.1.1、需求简介
我们通过自定义的metric的方式,做好了一个监控项,那么接下来我们就需要完成两个绘图要求。 1、绘制每分钟请求数量的曲线 QPS, 2、绘制每分钟请求量变化率曲线, 3、绘制每分钟请求处理平均耗时。
2.1.2、需求分析
上面的三个需求基本上都是曲线图,所以我们在Graph中选择折线图就可以了,而在绘图的时候,第一步需要做的就是获取数据,
所以我们现在需要做的就是在prometheus上,将这三个需求的PromQL写出来,效果如下: # 绘制每分钟请求数量的曲线 QPS sum(increase(request_count_total{instance="192.168.10.33:8000",job="my_metric"}[1m])) # 绘制每分钟请求量变化率曲线 sum(irate(request_count_total{instance="192.168.10.33:8000",job="my_metric"}[1m])) # 绘制每分钟请求处理平均耗时 request_processing_seconds_sum{instance="192.168.10.33:8000",job="my_metric"} / request_processing_seconds_count{instance="192.168.10.33:8000",job="my_metric"}
2.2、开始绘图
2.2.1、创建图形
2.2.2、选择数据源
2.2.3、编写PromQL查询语句
复制我们上面写好的
2.2.4、设置图表样式
2.2.5、坐标相关的调整
2.2.6、对图表聚合显示
2.2.7、保存再次查询效果
2.2.8、再按上面的方式,配置另外两个绘图,总体效果图
3、总结
3.1、绘图流程
1、分析业务特性,了解图形的业务目的,检查数据可否正常获取 2、Grafana添加Dashboard,选择要增加的可视化图例 3、可视化展示的数据获取 - Query配置 4、可视化图的图例配置 - virtualization配置 5、可视化图的可选配置 - General配置 6、如果有告警需求,配置好告警配置 - Alert配置
3.2、绘图小结
需求分析 - 分析需求场景、prometheus检验promQL语句 简单实践 - 创建dashboard,定制查询语句、定制图形、定制可选信息、综合展示