介绍
Variables变量提供了用户和面板交互,并动态刷新面板的功能。不需要硬编码,不需要每次都修改SQL查询语句。变量的下拉菜单显示在面板的顶部,这样改变下拉菜单的值,即可改变变量的值,而且所有使用该变量的仪表板都会随着变量的改变而改变。
![](http://upload-images.jianshu.io/upload_images/8500686-7ddd2c292db08854.png?imageMogr2/auto-orient/strip|imageView2/2/w/951/format/webp)
变量.png
变量(Variables)的定义:
在dashboard的设置中定义的变量,可以作为该dashboard的全局变量使用,如下图所示
![](http://upload-images.jianshu.io/upload_images/8500686-1cb8530a05bee401.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
定义.png
变量的表示符号IDC表示IDC这个变量,使用的时候,直接使用$IDC就可以获取IDC变量的值。
新建变量:
点击new按钮,填充如下,
![](http://upload-images.jianshu.io/upload_images/8500686-5474a863952ba1ba.png?imageMogr2/auto-orient/strip|imageView2/2/w/602/format/webp)
add.png
Type为变量的类型,总共有六种类型:Interval(时间间隔类),Query(查询类),Datasource(数据源类型),Custom(自定义类),Constant(常量类),Ad hoc filters(我也不知道啥玩意,未知类)
![](http://upload-images.jianshu.io/upload_images/8500686-a038956a6c4c5028.png?imageMogr2/auto-orient/strip|imageView2/2/w/208/format/webp)
Type.png
这里我选用了常用类型:Query,数据源为已经设置的mysql数据源,然后直接填入mysql查询语句:
SELECT DISTINCT cluster FROM jdos_node_base WHERE idc = '$IDC'
注:取值即可。
Refresh变量刷新方式
![](http://upload-images.jianshu.io/upload_images/8500686-e4bf6531ad4b927e.png?imageMogr2/auto-orient/strip|imageView2/2/w/331/format/webp)
Refresh.png
Refresh是指变量的刷新方式,总共三种: Never,On Dashboard Load,On Time Range Change.
Never : 从来不刷新
On Dashboard Load:面板加载的时候,刷新一次
On Time Range Change:跟随面板刷新时间刷新该变量,面板的刷新设置在面板的右上角,如下
![](http://upload-images.jianshu.io/upload_images/8500686-eea05b04085d0610.png?imageMogr2/auto-orient/strip|imageView2/2/w/924/format/webp)
面板刷新.png
变量设置完成之后,下方会出现变量的值。
点击Add按钮,设置完成。
返回面板,是这样的,
![](http://upload-images.jianshu.io/upload_images/8500686-154febcd88e47ef2.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
image.png
可以看到机房和集群已经设置成功了。
变量的使用
添加仪表板,进入编辑仪表板,如下图,
![](http://upload-images.jianshu.io/upload_images/8500686-68994d6cb3efbbee.png?imageMogr2/auto-orient/strip|imageView2/2/w/695/format/webp)
仪表板的编辑.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设置的变量,还是使用$符号取值。
选择不同的机房&集群就会自动刷新面板的值,因为改变机房&集群,变量的值也会同步改变。如下:
![](http://upload-images.jianshu.io/upload_images/8500686-bd9ba66f0610e202.png?imageMogr2/auto-orient/strip|imageView2/2/w/931/format/webp)
示例1.png
![](http://upload-images.jianshu.io/upload_images/8500686-583c48901aa64cc9.png?imageMogr2/auto-orient/strip|imageView2/2/w/951/format/webp)
示例2.png
欢迎在下方评论交流。
作者:风吹散了的回忆
链接:https://www.jianshu.com/p/fe8bab704716
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。