介绍

Variables变量提供了用户和面板交互,并动态刷新面板的功能。不需要硬编码,不需要每次都修改SQL查询语句。变量的下拉菜单显示在面板的顶部,这样改变下拉菜单的值,即可改变变量的值,而且所有使用该变量的仪表板都会随着变量的改变而改变。

变量.png

变量(Variables)的定义:

在dashboard的设置中定义的变量,可以作为该dashboard的全局变量使用,如下图所示

定义.png

变量的表示符号。如:IDC表示IDC这个变量,使用的时候,直接使用$IDC就可以获取IDC变量的值。

新建变量:

点击new按钮,填充如下,

add.png

Type为变量的类型,总共有六种类型:Interval(时间间隔类),Query(查询类),Datasource(数据源类型),Custom(自定义类),Constant(常量类),Ad hoc filters(我也不知道啥玩意,未知类)

Type.png

这里我选用了常用类型:Query,数据源为已经设置的mysql数据源,然后直接填入mysql查询语句:

SELECT DISTINCT cluster FROM jdos_node_base WHERE idc =  '$IDC'

注:IDC为已经设置的变量,直接使用取值即可。

Refresh变量刷新方式

Refresh.png

Refresh是指变量的刷新方式,总共三种: Never,On Dashboard Load,On Time Range Change.
Never : 从来不刷新
On Dashboard Load:面板加载的时候,刷新一次
On Time Range Change:跟随面板刷新时间刷新该变量,面板的刷新设置在面板的右上角,如下

面板刷新.png

变量设置完成之后,下方会出现变量的值。
点击Add按钮,设置完成。
返回面板,是这样的,

image.png

可以看到机房和集群已经设置成功了。

变量的使用

添加仪表板,进入编辑仪表板,如下图,

仪表板的编辑.png

选择数据源,输入查询语句:

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设置的变量,还是使用$符号取值。

选择不同的机房&集群就会自动刷新面板的值,因为改变机房&集群,变量的值也会同步改变。如下:

示例1.png

示例2.png

欢迎在下方评论交流。

作者:风吹散了的回忆
链接:https://www.jianshu.com/p/fe8bab704716
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。