变量的语法
面板标题和度量查询可以使用两种不同的语法引用变量:
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"
相关Grafana资源
开幕主题演讲:《Grafana 9》有什么新内容?
Raj Dutt, Myrle Krantz和Torkel Ödegaard揭开了Grafana 9的新内容。观看2022年GrafanaCONline开幕式主题演讲。随需应变。
使用Grafana插件统一您的数据:Datadog, Splunk, MongoDB等
在本次网络研讨会中,学习如何利用Grafana的插件生态系统访问80多个数据源,包括Datadog、Splunk、MongoDB等的插件。
从Grafana Enterprise和可观察性开始
加入Grafanabob电竞频道实验室团队,进行30分钟的演示,演示如何开始使用Grafana堆栈,这样您就可以在短短几分钟内从零到可观察性。