Grafana 教程

配置变量选择项

配置变量选择项

Selection Options 是一项可以用来管理变量选择项的功能。所有选择项都是可选的,默认情况下都是关闭的。

Multi-value 变量

对选择了多个值的变量进行插值非常棘手,因为如何将多个值格式化为在使用变量的给定上下文中有效的字符串并非易事。Grafana 试图通过允许每个数据源插件通知模板插值引擎多个值应使用什么格式来解决这个问题。

注意:变量上的 “Custom all value” 选项必须为空,Grafana 才能将所有值格式化为单个字符串。如果留空,Grafana 会将查询中的所有值连接(加在一起)。比如 value1,value2,value3。如果使用自定义的 all 值,则该值将是 * 或 all 之类的值。

例如:勾选变量的“Multi-value”复选框。

配置变量选择项

在仪表板上面使用该变量,点击变量下拉列表,多了一个“Selected”复选框:

配置变量选择项

当我们点击该复选框,选中所有变量值,效果如下:

配置变量选择项

使用 Graphite 数据源的 Multi-value 变量

Graphite 使用 glob 表达式。在这种情况下,如果当前变量的值是 host1、host2 和 host3,则具有多个值的变量会被插值为 {host1,host2,host3}。

使用 Prometheus 或 InfluxDB 数据源的 Multi-value 变量

InfluxDB 和 Prometheus 使用 regex 表达式,因此同一变量会被插值为 (host1|host2|host3)。每个值也都会经过 regex 转义。否则,带有 regex 控制字符的值将会破坏 regex 表达式。

使用 Elastic 数据源的 Multi-value 变量

Elasticsearch 使用 lucene 查询语法,因此同一变量的格式应为("host1" OR "host2" OR "host3")。在这种情况下,每个值都必须转义,以便值中只包含 lucene 控制字和引号。

排除多值变量故障

自动转义和格式化可能会造成问题,而且很难掌握其背后的逻辑。特别是对于 InfluxDB 和 Prometheus,使用 regex 语法需要在 regex 操作符上下文中使用变量。

如果不想让 Grafana 自动进行 regex 转义和格式化,则必须执行以下操作之一:

Include All option

Grafana 在变量下拉列表中添加了 “All” 选项。如果用户选择了该选项,那么所有变量选项都会被选中。

配置变量选择项

在仪表板上面的效果:

配置变量选择项

Custom all value

配置变量选择项

该选项只有在选择 "Include All option" 时才可见。

在 “Custom all value” 字段中输入 regex、globs 或 lucene 语法,以定义 All 选项的值。

默认情况下,"All" 值包括组合表达式中的所有选项。这可能会变得非常冗长,并可能产生性能问题。有时最好指定一个自定义的 All 值,如通配符 regex。

如果要在 “Custom all value” 选项中使用自定义 regex、globs 或 lucene 语法,则永远不会转义,因此您必须考虑什么是数据源的有效值。

配置变量选择项

在仪表板中使用该变量,效果图:

配置变量选择项

配置变量选择项

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号