Grafana 教程

使用 regex 过滤变量

使用 “Regex Query option” 选项,可以过滤变量查询返回的选项列表或修改返回的选项。

本页介绍如何使用 Regex 过滤/修改变量下拉菜单中的值。

使用 “Regex Query option” 选项,可以过滤变量查询返回的选项列表或修改返回的选项。更多信息,请参阅 Mozilla 正则表达式指南

过滤以下选项列表的示例:

backend_01
backend_02
backend_03
backend_04

过滤只返回以 01 或 02 结尾的选项:

正则表达式:

/(01|02)$/

结果:

backend_01
backend_02

使用 regex 捕获组过滤和修改选项,返回部分文本:

正则表达式:

/.*(01|02)/

结果:

01
02

过滤和修改 - Prometheus 示例

选项列表:

up{instance="demo.robustperception.io:9090",job="prometheus"} 1 1521630638000
up{instance="demo.robustperception.io:9093",job="alertmanager"} 1 1521630638000
up{instance="demo.robustperception.io:9100",job="node"} 1 1521630638000

正则表达式:

/.*instance="([^"]*).*/

结果:

demo.robustperception.io:9090
demo.robustperception.io:9093
demo.robustperception.io:9100

使用命名文本和数值捕获组进行筛选和修改

注意:此功能在 Grafana 7.4+ 中可用。

使用已命名的捕获组,可以从变量查询返回的选项中捕获单独的 "text" 和 "value" 部分。这样,变量下拉列表就可以为每个可选值包含一个友好的名称。

例如,在查询 node_hwmon_chip_names Prometheus 指标时,chip_name 要比 chip 值友好得多。因此会出现以下变量查询结果:

node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_0",chip_name="enp216s0f0np0"} 1
node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_1",chip_name="enp216s0f0np1"} 1
node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_2",chip_name="enp216s0f0np2"} 1
node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_3",chip_name="enp216s0f0np3"} 1

通过以下正则表达式:

/chip_name="(?<text>[^"]+)|chip="(?<value>[^"]+)/g

将产生以下下拉列表:

Display Name          Value
------------          -------------------------
enp216s0f0np0         0000:d7:00_0_0000:d8:00_0
enp216s0f0np1         0000:d7:00_0_0000:d8:00_1
enp216s0f0np2         0000:d7:00_0_0000:d8:00_2
enp216s0f0np3         0000:d7:00_0_0000:d8:00_3

注意:只支持 text 和 value 捕获组名称。

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