用Grafana Variables变量配置快速切换不同主机的图表数据展示
测试环境
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: