;指示板;变量;变量的语法

变量的语法

面板标题和度量查询可以使用两种不同的语法引用变量:

  • varname美元这种语法易于阅读,但不允许在单词中间使用变量。例子:apps.frontend server.requests.count美元。
  • $ {var_name}当您想在表达式中间插入变量时,请使用此语法。
  • $ {var_name: <格式>}这种格式使您可以更好地控制Grafana如何插值值。指高级可变格式选项有关所有格式化类型的详细信息。
  • [[varname]]不要使用。已弃用的旧语法,将在未来的版本中删除。

在将查询发送到数据源之前,查询是内插,意味着变量将被替换为当前值。在插值过程中,变量值可能为逃了出来以符合查询语言的语法及其使用位置。例如,在InfluxDB或Prometheus查询的正则表达式中使用的变量将被正则转义。有关插值期间的值转义的详细信息,请阅读数据源特定的文档主题。

有关覆盖数据源默认格式的高级语法,请参阅高级可变格式选项

高级可变格式选项

变量插值的格式取决于数据源,但在某些情况下,您可能希望更改默认格式。

例如,MySql数据源的默认值是用引号分隔逗号连接多个值:“server01”、“server02”.在某些情况下,你可能想要一个逗号分隔的字符串,不带引号:server01, server02.您可以使用下面列出的高级变量格式化选项来实现这一点。

一般的语法

语法:$ {var_name:选择}

上测试格式化选项Grafana游乐区

如果指定了任何无效的格式化选项,则一团是默认/回退选项。

另一种语法(将来可能会被弃用)是[[var_name:选项]]

CSV

将具有多个值的变量格式化为逗号分隔的字符串。

servers = ['test1', 'test2']字符串插值:'${servers:csv}'插值结果:'test1,test2'

分布式- OpenTSDB

以OpenTSDB的自定义格式格式化具有多个值的变量。

servers= ['test1', 'test2']字符串插值:'${servers:分布式}'插值结果:'test1,servers=test2'

Doublequote

将单值和多值变量格式化为逗号分隔的字符串,转义在每个值中\"并为每个值加上引号

servers = ['test1', 'test2']字符串插值:'${servers:doublequote}'插值结果:'"test1","test2"'

石墨球

将具有多个值的变量格式化为glob(用于Graphite查询)。

servers = ['test1', 'test2']插入字符串:'${servers:glob}'插入结果:'{test1,test2}'

JSON

将具有多个值的变量格式化为逗号分隔的字符串。

servers = ['test1', 'test2']字符串插值:'${servers:json}'插值结果:'["test1", "test2"]'

Lucene - Elasticsearch

为Elasticsearch格式化具有多个值的Lucene格式变量。

servers = ['test1', 'test2']插入字符串:'${servers:lucene}'插入结果:'("test1"或"test2")'

Percentencode

格式化URL参数中使用的单值和多值变量。

servers = ['foo()bar BAZ', 'test2']插入字符串:'${servers:percentencode}'插入结果:'foo%28%29bar%20BAZ%2Ctest2'

将具有多个值的变量格式化为管道分隔的字符串。

Servers = ['test1.]', 'test2'] String to interpolate: '${servers:pipe}' Interpolation result: 'test1.|test2'

关闭特定于数据源的格式,例如SQL查询中的单引号。

服务器= ['test.]插值结果:' test1,test2'

正则表达式

将具有多个值的变量格式化为正则表达式字符串。

Servers = ['test1.]', 'test2'] String to interpolate: '${servers:regex}' Interpolation result: '(test1\.|test2)'

Singlequote

将单值和多值变量格式化为逗号分隔的字符串,转义在每个值中\ '并为每个值加上引号

servers = ['test1', 'test2']字符串插值:'${servers:singlequote}'插值结果:"'test1','test2'"

主题是

将单值和多值变量格式化为逗号分隔的字符串,转义在每个值中并为每个值加上引号

servers = ["test'1", "test2"] String to interpolate: '${servers:sqlstring}'插值结果:"'test " 1','test2'"

文本

将单值和多值变量格式化为文本表示形式。对于单个变量,它只返回文本表示。对于多值变量,它将返回结合的文本表示形式+

servers = ["test1", "test2"]字符串插值:'${servers:text}'插值结果:"test1 + test2"

查询参数

将单值和多值变量格式化为其查询参数表示形式。例子:var-foo = value1&var-foo = value2

servers= ["test1", "test2"]字符串插值:'${servers:queryparam}'插值结果:"var-servers=test1&var-servers=test2"