grafana 批量添加图表

>>强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!

利用grafana做监控展示特别方便,而且界面还很有科技感,一般的使用都是自己手动添加图表,或者使用别人提供好的模板。
在一种情况下就比较尴尬了,我有100个实例的内存数据想展示,如果都放在一个table上,就特别的乱,互相覆盖,不能只管的展示,如果是1个实例一个table就很繁琐,明明相似的功能,要操作100次,如果是使用模板做一个下拉框选择,又不能同时在一个页面展示,只能选一个看一个。在这样的场景下,我们就需要一个方便的手段去做重复的事情,以此达到目的。
网上有很多教程,但是大部分都是思路对,并不能正常的操作下来。下面就主要讲讲如何操作的部分。

http api

grafana自己并不支持批处理,包括这个http api。http api只是提供了一种手段,让你通过api去操作dashboard。所以我们要做的是写程序,把重复的部分生成。最后操作一次api。

操作主要流程

查看api官网

http://docs.grafana.org/http_api/dashboard/
这一点很重要,网上很多操作方式都不是新的,新旧有些不同,所以从官方的api中复制出创建的demo来。

获取key

grafana 批量添加图表
图片描述


这个操作太明显了,直接点击。


查看要添加的元素

这个特别重要,因为不同版本不一样,所以要查看自己版本的的json。
首先还是创建一个模板的表格

grafana 批量添加图表
图片描述


然后点击查看dashboard的model找到对应图表的json的关键字


grafana 批量添加图表
图片描述


我的版本的关键字是panels

grafana 批量添加图表
图片描述


这个字段表示的是图表,里面填写的就是图表的样式数据,表达式等等。


java编码

上面就找到了所有的要提交的元素,下面就是利用代码生成重复的图表元素,最后复制粘贴到请求体提交。
查看里面的图表的json。我们要修改的主要就是表达式里的值,id还有坐标。重点,还有坐标。如果不修改这个,所有的图会重叠在一起。
首先使用json工具转化为java代码。下面推荐一个
http://www.bejson.com/json2javapojo/new/
这里需要有个修改,他自动转化的时候会把带有百分号的字段识别为date类型。这个需要手动改成string类型。到时候设置id从一个值开始往后加就行。
排版问题
整个图表就4个元素,x,y,w,h。我们设计好以后,w,h都是固定的。x,y初始都是0。x有这样一个规律,下一个图表的x=x+w。如果x超过返回就换下一行,y=y+h。同事把x=0;什么时候换下一行,这个需要你自己在那个页面上多加几个图表试试。我的版本是dashboard的宽度是24。超过24就换行。
生成json文件
这里推荐是把转化的结果写入文件,最后可以直接拷贝出来加入panels的字段里就好。注意写文件的时候,每个图表之间要用逗号分隔,在写完一个table的时候记得加逗号。
http提交
直接找个http的模拟器就好了。记得使用官网的demo。不要找别人写的,版本对应是个很大的问题。


原文始发于微信公众号(一次编译多处运行):grafana 批量添加图表