grafana之Variables变量的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grafana之Variables变量的使用相关的知识,希望对你有一定的参考价值。

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

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

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

点击new按钮,填充如下,

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

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

注: 取值即可。

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

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

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

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

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

这里的Cluster就是之前在Variables设置的变量,还是使用$符号取值。

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

欢迎在下方评论交流。

使用 extract($variables) 获取内容,但变量未定义

【中文标题】使用 extract($variables) 获取内容,但变量未定义【英文标题】:Getting contents with extract($variables), but the variables are undefined 【发布时间】:2015-08-13 16:00:33 【问题描述】:

我还没有掌握 extract() 函数和传输变量的窍门。 我在用户控制器中有一个方法,其中定义了一些变量,并以数组的形式发送到父控制器中的视图函数,其中提取了数组。然后需要视图。但是变量结果是未定义的。但是可以打印数组内容。

这是具有简化配置文件功能的用户控制器:

class User extends Controller

    public function profile()

         $profiledetails = $this->profiledetails();           
         $profilestatus = $this->profileStatus();            

         $this->view('profile', [$profiledetails, $profilestatus]);
    

变量被发送到父Controller中的视图函数:

class Controller 
    public function view($view, $variables =[])                    

    extract($variables);

    require_once './app/views/' . $view . '.php';

在视图中,“profile.php”显示未定义变量错误。我认为“extract()”函数会使 $profiledetails 和 $profilestatus 在视图中作为变量可用。 我究竟做错了什么?也许我使用了错误类型的数组,或者我应该使用“variabe variables”之类的......(在这种情况下,如何?)。

【问题讨论】:

extract 想要一个关联数组。 确实如此,根据文档:php.net/manual/en/function.extract.php 【参考方案1】:

extract关联数组一起使用。

    $this->view('profile', 
      [
        'profiledetails' => $profiledetails, 
        'profilestatus' => $profilestatus
      ]);   

【讨论】:

非常棒。谢谢!

以上是关于grafana之Variables变量的使用的主要内容,如果未能解决你的问题,请参考以下文章

grafana仪表盘中针对prometheus设置全局变量

Ansible — 编程 — Variables

httprunner 3.x--variables变量和声明

将多个变量保存在单个RDS文件中

05-Httprunner-变量的使用

jQuery Variables