Grafana 利用Grafana Variables变量配置快速切换不同主机的图表数据展示
用Grafana Variables变量配置快速切换不同主机的图表数据展示
by:授客 QQ:1033553122
测试环境
需求描述
操作步骤
结果展示
测试环境
influxdb-1.5.2.x86_64.rpm
网盘下载地址:
https://pan.baidu.com/s/1jAbY4xz5gvzoXxLHesQ-PA
grafana-5.1.2-1.x86_64.rpm
下载地址:
https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.3-1.x86_64.rpm
下载地址:https://pan.baidu.com/s/1wtnPH-iYxaXc6FnL1i0ZVg
需求描述
在一个Dashboard中新建了多个pannel,用于监控目标主机性能,因为需要监控的机器比较多,所以,希望用这一套pannel能方便的展示不同主机的性能--根据用户选择的目标机器,自动展示对应的性能数据。
此外,还希望这些pannel在展示数据时,能根据用户所选的tag进行展示。
另外,还希望在某个pannel上展示1到多个measurement的数据,比如想同时查看看单个、多个磁盘的%util的性能数据
操作步骤
1、新建Dashboard及pannel
2、进入步骤1新建的 Dashboard页面,点击Settings->Variables->Add variable

点击后打开如下界面

3、新建Datasource变量
说明:例中每台主机的性能数据单独存储在一个Datasource数据源中,所以需要新建这样一个数据源变量。

如图,
General中 填写 Name, Type选择 Datasource,
Data source options Type选择InfluxDB
其它,设置项保持默认。
说明:
Name 变量名称,要求变量名唯一,且不包含空白字符。
Label 变量在下拉列表中中的名称(The name of the dropdown for this variable。
Hide 隐藏该变量的下拉选择框,即在Dashboard中不展示。
Type 定义变量类型。
4、新建Query变量
说明:tag值需要通过查询得到,所以要新建Query变量。

如图,
General中 填写 Name, Type选择 Query,
Data source options Data source选择刚新建的变量 $dataSource,以保持变量“联动”,Refresh 设置为On Time Range Change。填写Query表达式(表达式书写规则因数据源不同而不同, 比如mysql,InfluxDB数据库都用各自的查询语法, InfluxDB为例,查询tag值 SHOW TAG VALUES WITH KEY= ‘stuid’ (这里stuid为tag的key)。Sort选择 Alphabetical(asc),按字母顺序升序排序
存储到数据源中的数据结构如下
json_body = [
{
"measurement": measurement,
"tags": {
"stuid": tag
},
"time": datetime_for_data,
"fields":field_dic
}
]
Selection Options 勾选Muiti-value,include All option以便变量下拉列表中可以进行多选,否则单选。
其它,设置项保持默认。
说明:
Data source 设置从哪个数据源中查询。
Refresh 控制啥时候更新变量选择列表(变量下拉列表中的值)。可选值 never(从不)、On Dashboard Load(Dashboard加载完成之前更新,这会减慢加载速度) 、On Time Range Change(如果变量选项包含一个时间范围过滤,即和时间相关,或者依赖dashboard时间范围选择)
Query 因数据源不同而不同的特定查询表达式
Regex 正则表达式,用于过滤Query返回的数据(可能我们只需要Query返回中的部分数据,可选。
Sort 定义下拉选项的顺序,设置为Diasble则表示保持按查询返回的数据排序。
Multi-value 如果勾选,即开启,则变量下拉列表指出多选
Include All option 添加一个 All 选项,该选项表示包含所有变量值
Custom all value 如上,默认添加的ALL选项会包含同查询表达式绑定的所有值,这些值可能会有很多,这会带来性能问题,这种情况下,我们可以指定一个自定义all值,比如一个通配符正则表达式(globs 或 lucene 语法的表达式),以减少all所包含的数据量,如果发现设置了不起作用,那么要考虑正则表达式是否正确了。
新建供磁盘使用的measurement Query变量

5、编辑pannel,引用变量


结果展示




参考链接:
http://docs.grafana.org/reference/templating/
http://docs.grafana.org/features/datasources/influxdb/
附:
来自网络的一个演示demo:
http://47.96.36.117:3000/dashboard/db/nginxfang-wen-tong-ji?spm=a2c4g.11186623.2.78.546e6e15HziVlc&orgId=1
Grafana 利用Grafana Variables变量配置快速切换不同主机的图表数据展示的更多相关文章
- 利用Python特殊变量__dict__快速实现__repr__的一种方法
在<第8.15节 Python重写自定义类的__repr__方法>.<Python中repr(变量)和str(变量)的返回值有什么区别和联系>.<第8.13节 Pytho ...
- 阿里云SLB快速切换至https
域名caifuxiang.com是直接解析到阿里云SLB的,运行了好几年的http服务,今天通过修改配置快速切换到了https,莫名就感觉更上档次了! 首先,SSL证书 服务可以提供免费单域名证书 w ...
- 一些有用的 Emacs 配置(窗口快速切换、一键透明效果、任意位置删除整行等)
本篇文章记录的是一些有用的 Emacs 配置,有些是自己原创,有些是借鉴别人(能记起来出处的我放了链接). 规定:C 代表 Ctrl,M 代表 Alt. 1.设置一次跳跃 n 行的快捷键 按 C-M- ...
- Windows环境下使用Netsh命令快速切换IP配置
不同的内网环境需要使用不同的IP配置,频繁切换令人发狂,因此搜索了快速切换IP配置的方法. Netsh interface IP Set address "以太网" Static ...
- 性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据
CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据 by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 2 1.安装influxdb ...
- 如何快速切换Python运行版本,如何选择Python版本
想必在学习Python时会面临选择Python2.X或者是Python3.X的问题. 我在电脑上不同位置下载安装了不同版本 的Python,当我在学习时,不管是需要哪一个版本才能运行都无所谓,相应的快 ...
- 第一篇 Postman的初级使用之设置环境快速切换生成环境与测试环境
POSTMAN是有谷歌的开源工具,在开发调试.测试执行过程中使用频率非常广泛,本文将记录一些postman在测试中常见的一些配置和使用方法 一.基本的页面区域 略,很简单,大家都会看,再有,学习下面的 ...
- [刘阳Java]_避开环境配置快速的使用Java的开发工具_第5讲
我们一般学习Java都应该遵循通过系统的命令工具来编译Java程序,然后对编译好Java程序进行运行,这个是非常好的习惯.但是随着后期学习Java技术的深入我们也得像Java的IDE工具屈服.所以,可 ...
- Java 学习第一步-JDK安装和Java环境变量配置
Java学习第一步——JDK安装及Java环境变量配置 [原文] 2014-05-30 9:09 Java SE 阿超 9046 views Java作为当下很主流的编程语言,学习Java的朋 ...
随机推荐
- travis-ci 中运行 puppeteer
通过 travis-ci 可以构建基于 puppeteer 的自动化任务,基于此构建的一个 计划任务 puppeteer中调用需要禁用沙箱环境 https://github.com/GoogleChr ...
- 位运算-出现k次与出现一次
题目:数组中arr只有一个数出现了1次,其他的数都出现了k次,请输出这个只出现了一次的数. 思路:这道题目要求使用位运算实现,如果采用数据结构Map就会简单很多.解此题前先了解不进位加法的思想,比如两 ...
- [Swift]LeetCode1020. 飞地的数量 | Number of Enclaves
Given a 2D array A, each cell is 0 (representing sea) or 1 (representing land) A move consists of wa ...
- Linux 实现服务器之间时间同步
在主服务器上安装NTP时间同步服务器 yum -y install ntp vim /etc/ntp.conf 手动添加两行 server 127.127.1.0 fudge 127.127.1.0 ...
- 值得收藏的Mybatis通用Mapper使用大全。
引言 由于小编的记性不太好,每次在写代码的时候总是把通用mapper的方法记错,所以今天把通用mapper的常用方法做一下总结,方便以后直接查看.好了,不废话啦. 引包 <!-- 通用Mappe ...
- python 菱形继承问题究极版
如果只是正常的菱形继承,经典类(python2中最后一个父类不继承object类)是深度优先,即会从左边父类开始一路走到底 新式类(最后一个父类继承了object类)是广度优先,即从左边父类开始继承, ...
- Python3练习
Hello Python3 print("Hello Python!") #print("Hello, Python!"); '''a=1 b=2 c=a+b ...
- Docker & Consul & Fabio & ASP.NET Core 2.0 微服务跨平台实践
相关博文: Ubuntu 简单安装 Docker Mac OS.Ubuntu 安装及使用 Consul Consul 服务注册与服务发现 Fabio 安装和简单使用 阅读目录: Docker 运行 C ...
- ES 02 - 部署Elasticsearch单机服务 + 部署中的常见问题
目录 1 准备工作 1.1 安装JDK 1.2 下载安装包 1.3 创建elastic用户 2 启动ES服务 2.1 修改配置文件 2.2 启动服务 3 验证ES服务是否可用 4 关闭与重启服务 4. ...
- Java设计模式学习总结
设计模式基础学习总结 这篇总结主要是基于我之前设计模式基础系列文章而形成的的.主要是把重要的知识点用自己的话说了一遍,可能会有一些错误,还望见谅和指点.谢谢 更多详细内容可以查看我的专栏文章:设计模式 ...