grafana 批量添加图表
利用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
这个操作太明显了,直接点击。
查看要添加的元素
这个特别重要,因为不同版本不一样,所以要查看自己版本的的json。
首先还是创建一个模板的表格
然后点击查看dashboard的model找到对应图表的json的关键字
我的版本的关键字是panels
这个字段表示的是图表,里面填写的就是图表的样式数据,表达式等等。
java编码
上面就找到了所有的要提交的元素,下面就是利用代码生成重复的图表元素,最后复制粘贴到请求体提交。
查看里面的图表的json。我们要修改的主要就是表达式里的值,id还有坐标。重点,还有坐标。如果不修改这个,所有的图会重叠在一起。
首先使用json工具转化为java代码。
这里需要有个修改,他自动转化的时候会把带有百分号的字段识别为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 批量添加图表的更多相关文章
- zabbix利用api批量添加item,并且批量配置添加graph
关于zabbix的API见,zabbixAPI 1item批量添加 我是根据我这边的具体情况来做的,本来想在模板里面添加item,但是看了看API不支持,只是支持在host里面添加,所以我先在一个ho ...
- 百度地图API 批量添加 带检索功能的信息窗口
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- yii2批量添加的问题
作者:白狼 出处:http://www.manks.top/yii2_batch_insert.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否 ...
- EF批量添加数据性能慢的问题的解决方案
//EF批量添加数据性能慢的问题的解决方案 public ActionResult BatchAdd() { using (var db = new ToneRoad.CEA.DbContext.Db ...
- chart.js 里添加图表的清单:
chart.js 里添加图表的清单: var legend = myDoughnut.generateLegend(); $("#chart_legend").html(legen ...
- Java使用Mysql数据库实现批量添加数据
EmployeeDao.java //批处理添加数据 public int saveEmploeeBatch(){ int row = 0; try{ con = DBCon.getConn(); S ...
- Mybatis批量添加对象List
1.对应的xml文件: <!--批量添加--><insert id="insertStandardItemInfo" parameterType="ha ...
- SqlServer——批量操作(批量添加,删除)
批量添加数据: 一条insert语句批量插入多条记录 常见的insert语句,向数据库中,一条语句只能插入一条数据: insert into persons (id_p, lastname , fir ...
- react.js 之 批量添加与删除功能
最近做的CMS需要用到批量添加图片的功能:在添加文件的容器盒子内,有两个内容,分别是:添加按钮与被添加的选择文件组件. 结构分析: 被添加的组件,我们称为:UploadQiNiuFiles(七牛文件上 ...
随机推荐
- java selenium webdriver处理JS操作窗口滚动条
未经作者允许,禁止转载!!! java selenium webdriver处理JS操作窗口滚动条 java selenium webdriver处理JS操作窗口滚动条 import org.open ...
- 树莓派3Braspberry pi 如何汉化显示中文教程
树莓派默认是采用英文字库的,而且系统里没有预装中文字库,所以即使你在locale中改成中文,也不会显示中文,只会显示一堆方块.因此需要我们手动来安装中文字体. 好在有一个中文字体是免费开源使用的.ss ...
- class A where T:new()是什么意思
这是C#泛型类声明的语法 class A<T> 表示 A类接受某一种类型,泛型类型为T,需要运行时传入where表明了对类型变量T的约束关系. where T:new()指明了创建T的 ...
- 匹克定理pick
与POJ1226为例 要知道在一个格点多边形内 知道期内部的点数 Q,边上的点数L,就可以知道他的面积pick定理及 S=Q+L/2-1; 然后 还有边上的点数除了多边形的顶点外,还有一些点该怎么求呢 ...
- 【Redis学习之九】Redis集群:Twemproxy和HA
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 redis-3.0.4 主从模式对写压力没有分担,解决思路就 ...
- html5设置全屏模式--开发游戏必备
<!-- uc强制竖屏 --> <meta name="screen-orientation" content="portrait"> ...
- Linux基础命令---e2image
e2image e2Image程序将位于设备上的ext2.ext3或ext4文件系统元数据保存到由图像文件指定的文件中.通过对这些程序使用-i选项,image文件可以由dupe2fs和调试器来检查.这 ...
- 利用构造函数对canvas里面矩形与扇形的绘制进行一个封装
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Q_DECLARE_PRIVATE与Q_DECLARE_PUBLIC
Q_DECLARE_PRIVATE与Q_DECLARE_PUBLIC 这两个宏在Qt的源码中随处可见,重要性不言而喻.在 部落格的 Inside Qt Series 系列文章中,他用了3篇文章来讲这个 ...
- HTML 语义化标签-新增标签介绍
HTML 基础知识 版权声明:未经博主授权,内容严禁转载 ! HTML语义化标签概念 如果没有语义化标签,上面这些 div 都是没有实际意义的,只是我们提供给浏览器的指令. 和 语义化 代码对比: 什 ...