官方地址
变量
|| 变量是值的占位符 。 变量允许更多交互式和动态仪表盘。通过变量大家就可以给Dashboard加搜索条件了。
入口
- 操作步骤: Setting --> Variables --> New
-
添加变量
基础变量配置
选项 | 描述 |
---|---|
Name | 变量的名称,这是在度量标准查询中引用变量时使用的名称。必须是唯一的,不包含空格。 |
Label | 此变量的下拉列表的名称。 |
Type | 定义变量类型。 |
Hide | 隐藏下拉选择框的选项。 |
变量类型
类型 | 描述 |
---|---|
Datasource | 此类型允许您快速更改整个仪表板的数据源。如果您在不同的环境中有多个数据源实例,则非常有用。 |
Query | 此变量类型允许您编写数据源查询,该查询通常返回度量标准名称,标记值或键的列表。例如,返回服务器名称,传感器ID或数据中心列表的查询。 |
Interval | 此变量可表示时间跨度。不是按时间或日期直方图间隔对组进行硬编码,而是使用此类型的变量。 |
Custom | 使用逗号分隔列表手动定义变量选项。 |
Constant | 定义隐藏常量。对于要共享的仪表板的度量标准路径前缀很有用。在仪表板导出期间,常量变量将变为导入选项。 |
Ad hoc filters | 非常特殊的变量,目前仅适用于某些数据源,InfluxDB和Elasticsearch。它允许您添加键/值过滤器,这些过滤器将自动添加到使用指定数据源的所有度量标准查询中。 |
Text box | 此变量类型将显示为带有可选默认值的自由文本输入字段。 |
查询选项
此变量类型是最强大和最复杂的,因为它可以使用数据源查询动态获取其选项。
选项 | 描述 |
---|---|
Data source | 查询的数据源目标。 |
Refresh | 控制何时更新变量选项列表(下拉列表中的值)。在仪表板上加载将减慢仪表板负载,因为在初始化仪表板之前需要完成变量查询。如果变量选项查询包含时间范围过滤器或取决于仪表板时间范围,则仅将此设置为“ 开时间范围更改”。 |
Query | 数据源特定的查询表达式。 |
Regex | 正则表达式用于过滤或捕获数据源查询返回的名称的特定部分。可选的。 |
Sort | 在下拉列表中定义选项的排序顺序。已禁用表示将使用数据源查询返回的选项顺序。 |
ES 特定的表达式 Query 查询变量
Elasticsearch数据源支持两种类型的查询,您可以在Query变量的Query字段中使用这两种类型的查询。查询是使用自定义JSON字符串编写的。
Query | 描述 |
---|---|
{“find”:“fields”,“type”:“keyword”} | 返回索引类型的字段名称列表keyword 。 |
{“find”:“terms”,“field”:“@ hostname”,“size”:1000} | 使用术语聚合返回字段的值列表。查询将用户当前仪表板时间范围作为查询的时间范围。 |
{“find”:“terms”,“field”:“@ hostname”,“query”:'<lucene query="" style="box-sizing: border-box;">“}</lucene> | 使用term aggregation&和指定的lucene查询过滤器返回字段的值列表。查询将使用当前仪表板时间范围作为查询的时间范围。 |
术语查询的默认大小限制为500。在查询中设置size属性以设置自定义限制。您可以在查询中使用其他变量。名为变量的示例查询定义$host
。
{"find": "terms", "field": "@hostname", "query": "@source:$source"}
在上面的示例中,我们使用$source
在查询定义中命名的另一个变量。每当您通过下拉列表更改$source
变量的当前值时,它将触发$host
变量的更新,因此它现在只包含在本例中过滤的@source
文档属性的主机名。
在查询中使用变量
有两种语法:
-
$<varname>
示例:@hostname:$ hostname -
[[varname]]
示例:@hostname:[[hostname]]
为什么两种方式?第一种语法更易于读写,但不允许您在单词的中间使用变量。启用“ 多值”或“ 包括所有值”选项后,Grafana会将标签从纯文本转换为兼容lucene的条件。
在上面的示例中,我们有一个lucene查询,它@hostname
使用名为的变量根据属性过滤文档$hostname
。它还在“ 条款”字段输入框中使用变量。这允许您使用变量快速更改数据的分组方式。