介绍
Variables变量提供了用户和面板交互,并动态刷新面板的功能。不需要硬编码,不需要每次都修改SQL查询语句。变量的下拉菜单显示在面板的顶部,这样改变下拉菜单的值,即可改变变量的值,而且所有使用该变量的仪表板都会随着变量的改变而改变。
变量(Variables)的定义:
在dashboard的设置中定义的变量,可以作为该dashboard的全局变量使用,如下图所示
变量的表示符号IDC表示IDC这个变量,使用的时候,直接使用$IDC就可以获取IDC变量的值。
新建变量:
点击new按钮,填充如下,
Type为变量的类型,总共有六种类型:Interval(时间间隔类),Query(查询类),Datasource(数据源类型),Custom(自定义类),Constant(常量类),Ad hoc filters(我也不知道啥玩意,未知类)
这里我选用了常用类型:Query,数据源为已经设置的mysql数据源,然后直接填入mysql查询语句:
SELECT DISTINCT cluster FROM jdos_node_base WHERE idc = '$IDC'
注:取值即可。
Refresh变量刷新方式
Refresh是指变量的刷新方式,总共三种: Never,On Dashboard Load,On Time Range Change.
Never : 从来不刷新
On Dashboard Load:面板加载的时候,刷新一次
On Time Range Change:跟随面板刷新时间刷新该变量,面板的刷新设置在面板的右上角,如下
变量设置完成之后,下方会出现变量的值。
点击Add按钮,设置完成。
返回面板,是这样的,
可以看到机房和集群已经设置成功了。
变量的使用
添加仪表板,进入编辑仪表板,如下图,
选择数据源,输入查询语句:
SELECT
UNIX_TIMESTAMP(start_time) as time_sec,
cpu_max as value,
"cpu_max" as metric
FROM jdos_idc_info
WHERE $__timeFilter(start_time) AND cluster = "$Cluster"
ORDER BY start_time ASC
这里的Cluster就是之前在Variables设置的变量,还是使用$符号取值。
选择不同的机房&集群就会自动刷新面板的值,因为改变机房&集群,变量的值也会同步改变。如下:
欢迎在下方评论交流。