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(七牛文件上 ...
随机推荐
- cheng gong de daima
/** * Copyright (c) 2012-2016 ebizwindow, Inc. All rights reserved. * * Permission is hereby granted ...
- tfs使用流程
1.用邮箱注册个微软账号,如zhangsan@outlook.com等邮箱 2.管理员会添加此用户zhangsan@outlook.com 3.打开vs,team-tfs-connect to ser ...
- 2:4 动态方法的调用(简化Action的配置)
动态方法的第一种方法: 所以我们要手动设置 动态调用的开关打开:strus-core-jar里面:修改常量 使用方法: 根据请求来区分用哪个方法处理,处理完了,注意要在该方法里面返回与请求相同的字符串 ...
- <<Joint Deep Modeling of Users and Items Using Reviews for Recommendation>> 评论打分预测
综述: 本文将 CNN 与 FM(Factorization Machine) 结合,基于评论文本来进行评分预测. 简介: 目前将神经网络应用推荐系统的研究工作中,有一类思路是把如CNN等神经网络作为 ...
- yii2--windows下composer安装
//文件及存放目录 D:\php\php.exe D:\php\composer.phar //设置path(追加) ; D:\php //创建composer.bat文件 D:\php>ech ...
- bind,live,delegate
.live() 到目前为止,一切似乎很完美.可惜,事实并非如此.因为.live()方法并不完美,它有如下几个主要缺点: $()函数会找到当前页面中的所有td元素并创建jQuery对象,但在确认事件目标 ...
- python3.4学习笔记(二十五) Python 调用mysql redis实例代码
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...
- 获取Json字符串中的key和value
获取Json字符串中的key和value 在web项目中经常会用到json数据(如:struts2处理请求返回json数据给jsp解析),因此,JSONObject对象是必备的,这时就需要引入相关的j ...
- 20145310《网络对抗》逆向及Bof基础
实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShe ...
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释
初学STM32,在RealView MDK 环境中使用STM32固件库建立工程时,初学者可能会遇到编译不通过的问题.出现如下警告或错误提示: warning: #223-D: function &qu ...