使用 “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 捕获组名称。