【发布时间】:2019-07-22 01:33:53
【问题描述】:
我正在尝试使用自定义查询在 Grafana 中创建一个变量,以扫描 EKS 集群中的节点。目前,节点变量存储为“连字符”分隔的字符串(例如 10-109-22-102);我打算将其报告为“点”分隔的字符串(例如 10.109.22.102)。这甚至可以通过正则表达式实现吗?
Grafana variables 支持通过抓取给定指标然后使用正则表达式在报告指标中提取值来创建实时变量。我目前正在抓取一个指标:
kube_node_info{container_runtime_version="docker://18.6.1",endpoint="http",instance="10.11.111.111:8080",job="kube-state-metrics",kernel_version="xxxxx",kubelet_version ="xxxx",kubeproxy_version="xxxx",namespace="infra",node="ip-10-11-111-111.us-sdlls-as.compute.internal",os_image="亚马逊 Linux 2",pod="prometheus-operator-kube-state-metrics-sdfgsjdkgl-saldjl",service="prometheus-operator-kube-state-metrics"}
我目前正在使用正则表达式:/.*node="ip-([^"]*).us-*/ 来提取“连字符”分隔的 IP。我也尝试过使用其他匹配组,例如:([\d]{2,3})-([\d]{2,3})-([\d]{2,3})-([\d]{2,3}),但是这仅返回 grafana 中的第一个匹配组(在本例中为 10)作为唯一选项。
预期的输出应该是:
10.11.111.111
【问题讨论】:
标签: regex go grafana prometheus re2