使用 “Regex Query option” 选项,可以过滤变量查询返回的选项列表或修改返回的选项。
本页介绍如何使用 Regex 过滤/修改变量下拉菜单中的值。
使用 “Regex Query option” 选项,可以过滤变量查询返回的选项列表或修改返回的选项。更多信息,请参阅 Mozilla 正则表达式指南。
过滤以下选项列表的示例:
backend_01 backend_02 backend_03 backend_04
正则表达式:
/(01|02)$/
结果:
backend_01 backend_02
正则表达式:
/.*(01|02)/
结果:
01 02
选项列表:
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 捕获组名称。