图形定制


根据上面的方式方法基本上可以把我们的监控图表绘制出来,但是有的场景下面可能需要更多的定制功能。比如我们想要在 CPU 使用率的面板中同时展示系统、用户以及总的使用率,还需要做一些其他定制让我们的图表看起来更加友好。(需要多个PromQL语句来展示,这也就是将不同的查询放置到一个面板上面)

多个查询


编辑 CPU 使用率这个面板,在面板编辑器下方的 Query 区域点击 + Query 按钮新增一个查询:

这样其实也就是将不同的查询放到一个panel里面去,这样就可以多维度的展示监控指标了。

在该查询中输入查询语句来获取系统 CPU 的使用率:

sum(rate(node_cpu_seconds_total{instance=~"$hosts",mode="system"}[1m])) by (instance) / sum(rate(node_cpu_seconds_total{instance=~"$hosts"}[1m])) by (instance)  * 100

空闲CPU:

(1 - sum(rate(node_cpu_seconds_total{mode="idle",instance=~"$instance"}[1m])) by (instance) / sum(rate(node_cpu_seconds_total{instance=~"$instance"}[1m])) by (instance) ) * 100

 用同样的方式再新增一个查询用户 CPU 使用率的语句:

如果我们选择查询所有节点的 CPU 使用率,那么最终的效果如下所示:(这样就可以看到总使用率和用户使用率了)

这样就将不同的查询整合到同一个panel里面来了。

转换


我们可以看 Legend 部分的展示始终会带上 :9100 这个端口号,但其实这对于我们展示来说意义不大,所以最好是去掉这个端口信息,可以点击编辑器下方 Query 旁边的 Transform 选项卡进入转换页面:

Transform 转换功能允许我们在查询结果可视化之前加入、计算、重新排序、隐藏和重命名查询结果,不过目前只支持时间序列数据。

对于拥有大量仪表板或大量查询的用户而言,能够在另一个面板中重用来自一个面板的查询结果可能会带来巨大的性能提升。

如果有多个转换,Grafana 会按照它们列出的顺序来应用它们,每个转换都会创建一个新的结果集,该结果集会传递到管道中的下一个转换进行处理。

Grafana 中支持非常多的转换方式,我们这里使用 Rename by regex 这个通过正则重命名的转换器即可,这里我们只需要添加一个 (.*):9100 的正则表达式即可,将 host 信息保留下来,如下图所示:

关于转换的更多使用方法可以参考官方文档 /docs/grafana/next/panels/reference-transformation-functions/ 了解更多信息。

Legend 配置


上面转换完成后,可以看到 Legend 部分展示的图例较多,我们可以将 Legend 的模式修改为 Table

修改为 Table 模式后可以看到图形中的 Legend 用表格的形式展示出来了。

展示到右上方,这样方便看。

此外我们还可以通过 Legend values 来选择一些其他的信息进行展示,比如最大值、最小值、平均值等等:(以table展示的话显得更加有序)

Standard options 


由于我们这里计算的都是百分比,所以可以将单位设置为 %,位于右侧的 Standard options 下方的 Unit 中选择 Misc -> Percent(0-100) 即可:

此外还可以配置图例的最小值、最大值、保留小数的位数、图形颜色配置等等

可以去选择图形颜色的配置

时间间隔设置为变量


前面我们在查询监控数据的时候都是将区间向量的范围固定成了 1m 或者 5m,这样固定后显然不是非常灵活,所以我们可以再添加一个时间间隔的参数来灵活选择。

这个1m钟就需要改为参数的形式。

这里我们新增了一个名为 interval 的参数,不过需要注意该参数的类型为 Interval,然后我们配置该参数可选的值包括 1m,5m,10m,30m,添加后在 Dashboard 页面上就会多一个时间间隔的下拉框。然后记得将查询语句中的相关时间间隔替换成 $interval 参数:

可以看到这里可以选择时间间隔了

修改PromQL

覆盖


用同样的方式可以去对内存监控图表进行修改,比如在一个图表中展示总内存、已用内存、可用内存、内存使用率等信息。

新增

  1. 总内存的查询          node_memory_MemTotal_bytes{instance=~"$host"}
  2. 已用内存的查询       node_memory_MemTotal_bytes{instance=~"$host"} -                      node_memory_MemAvailable_bytes{instance=~"$host"}
  3. 可用内存的查询       node_memory_MemAvailable_bytes{instance=~"$host"}

如下图所示:

但是这里有一个明显的问题是内存使用率的结果是一个百分比,而其他内存使用情况的结果是具体的内存大小,那么将他们绘制在同一个图形中必然会有单位不一致的问题,而且结果相差也较大,那么可以怎么来解决这个问题呢?

首先我们可以先将整个面板的单位调整为 bytes(IEC),该形式的单位会自动在 GiB、MiB、KiB 之间进行换算:

但是明显使用率的单位是不正确的,这个时候就需要我们针对该查询进行覆盖配置,点击编辑器右侧 Overrides 选项卡进行覆盖配置:

点击选项卡中的 + Add field override 按钮可以对属性进行覆盖操作,可选的方式有很多,比如可以设置指定具体属性的值,也可以根据正则表达式来匹配属性的名进行配置,还可以根据指定的类型以及指定的 query 查询结果进行覆盖,显然我们这里选择最后一项 Fields returned by query 更加合理,直接选择查询使用率的 A 这条语句进行覆盖:

下面其实就是对单独的promsql语句展示图形的配置,包括线条, 以百分比显示

然后就可以开始针对查询 A 的各项属性进行单独的配置:

比如我们可以将内存使用百分比的图形样式修改成 Point 点的形式:

然后还可以图形的各种样式,比如 Point 的大小

同样还可以给图例的 Y 轴添加上百分比的单位,显示在图形右侧,这样看上去就更加清晰了:

最终效果如下所示:

这样我们就在同一个图形当中显示出了不同单位的两种图形,而且毫无违和感吧~

调整精度


在上面的内存信息图表中我们已经可以直接看到总内存、使用了多少内存等信息了,其实对于内存的使用率数据要求就不是那么高了,我们可以少绘制几个使用率的数据点,可以提高 Grafana 的性能。

这里就需要对查询 A 的 Min Step 和 Resolution 选项进行配置:

当查询到的样本数据量非常大时可以导致 Grafana 渲染图标时出现一些性能问题,通过 Min Step 可以控制 Prometheus 查询数据时的最小步长,从而减少从 Prometheus 返回的数据量。

Resolution 选项则可以控制 Grafana 自身渲染的数据量。例如,如果 Resolution 的值为 1/10,Grafana 会将 Prometeus 返回的 10 个样本数据合并成一个点。因此 Resolution 越小可视化的精确性越高,反之,可视化的精度越低。比如我们这里设置最小步长为 5m,分辨率为 1/10,最终的图形样式如下所示:

Grafana panel 图形高级定制相关推荐

  1. AI将成科学家“高级定制”工具

    来源:科技日报   作者:房琳琳 化学家有了新的实验助手--人工智能(AI).随着深度学习算法的进一步应用,AI计算机程序能帮助药物化合物等小有机分子产生所需的反应序列,制定合成路径. <自然& ...

  2. 分布式监控系统Zabbix--使用Grafana进行图形展示

    今天介绍一款高颜值监控绘图工具Grafana,在使用Zabbix监控环境中,通常我们会结合Grafana进行图形展示.Grafana默认没有zabbix作为数据源,需要手动给zabbix安装一个插件, ...

  3. WebBrowser控件的高级定制+mshtml

    --> blog:WebBrowser控件的高级定制---以下为三篇重要的参考文献,     第一篇可以禁用了js弹窗和声音     第二篇的引用文献禁用了IE弹窗,但是原文的说明很好      ...

  4. 山东如意路嘉纳高级定制西装品牌惊艳亮相intertextile面料展 - 服装资讯中心 - 华衣网...

    山东如意路嘉纳高级定制西装品牌惊艳亮相intertextile面料展 - 服装资讯中心 - 华衣网 山东如意路嘉纳高级定制西装品牌惊艳亮相intertextile面料展 - 服装资讯中心 - 华衣网 ...

  5. 改善高级定制时装状况探讨

    就在世界经济与政治领导人齐聚达沃斯.讨论如何"改善世界状况:重思.重设和重建"的同一周,世界时装大腕(至少是其中的部分)云集巴黎,讨论如何"改善高级定制时装状况:重思和重 ...

  6. 劳斯莱斯Bespoke高级定制幻影长轴距版亮相上海车展

    车控快讯(文/每日一CHEK)劳斯莱斯Bespoke高级定制幻影长轴距版亮相车展,外观采用深邃潜艇蓝,玫瑰金手绘单腰线和"欢庆女神"为车型增添亮色,内饰巧妙融合米洛丽蓝色钢琴漆木饰 ...

  7. 2019春夏巴黎高级定制时装周 T台变身杂技场

    当地时间1月21日,2019春夏巴黎高级定制时装周在法国巴黎举行,众多模特现场走秀. 杂技演员与模特同场秀技.

  8. 强烈推荐这款神器,把网站转pdf还能编程高级定制!【建议收藏】

    正式的Python专栏第8篇,同学站住,别错过这个从0开始的文章! 学委之前写过一篇把热榜保存为html文件的,这次利用上次写的部分代码继续拓展:生成pdf文件. 我们需要的就是这个软件: wkhtm ...

  9. 【CSDN竞赛第26期】赢实体图书盲盒和高级定制背包等周边

    一.报名地址 第26期周赛报名地址,2月5日 9点开考(周日):https://edu.csdn.net/contest/detail/40 第25期周赛也在报名中,2月1日 19点开考(周三):ht ...

  10. 【CSDN竞赛第28期】赢实体图书盲盒和高级定制背包等周边

    一.报名地址 第28期周赛报名地址,2月12日 9点开考(周日):https://edu.csdn.net/contest/detail/42 第27期周赛也在报名中,2月8日 19点开考(周三):h ...

最新文章

  1. oracle网站wget下载
  2. 使用编译器——Solidity中文文档(8)
  3. 突发!又一个程序员在东南亚出事了...
  4. 哈佛牙学院博士后:教你口腔保健基本功之刷牙篇
  5. 干货 | 解决分布式场景下数据一致性问题,我有办法!
  6. php多线程swoole,swoole究竟能够多线程么_PHP开发框架教程
  7. ActiveReports 报表控件官方中文新手教程 (1)-安装、激活以及产品资源
  8. TensorFlow HOWTO 1.1 线性回归
  9. quotes 整站数据爬取存mongo
  10. webService的使用-----Eclipse
  11. mac编写python_刚到手Mac写Python的一个简单问题
  12. 亲,愚人节要来了!记得带着智商出门哦
  13. php汉字转换拼音,php如何将汉字转换为拼音
  14. 社区发现研究报告——基于信息熵和局部相关性的多标签传播重叠社区发现算法
  15. git查看历史记录及修改内容
  16. 树莓派33/100 - Pico控制直流小马达,为智能避障小车提供动力
  17. 视频在线播放,边下边播的一些问题记录
  18. 动手开发一个滴滴出行,是的,你没有看错!
  19. DSSD : Deconvolutional Single Shot Detector论文阅读笔记
  20. 16、基于51单片机智能浇花自动浇水灌溉土壤湿度检测报警系统设计

热门文章

  1. 湘乡江南计算机学校舒俊梅,东山学校建校120周年校庆捐款捐物情况公布-湘乡东山学校.DOC...
  2. 【理科】2020年高考数学(第十二章复数、算法、推理与证明)考点与题型全归纳
  3. 【编译原理】 CS143 斯坦福大学公开课 专栏总揽
  4. 有意思的前端代码收集
  5. uview ui与element ui的区别和用法
  6. 5G无线系统设计与国际标准 pdf和Word
  7. 51最小系统原理图 PCB
  8. Linux 实现OpenSSL 服务器端客户端通信
  9. 大学的第一堂必修课:军训
  10. 网站流量PV是什么意思? UV是什么意思?