如何在 grafana 中使一个标签值引用另一个标签值

How to make one label value refer another label values in grafana

提问人:Kavi Rakesh 提问时间:11/14/2023 更新时间:11/14/2023 访问量:47

问:

此查询将标签指定为:label_values(kubelet_runtime_operations_total{job="kubelet", metrics_path="/metrics"}, instance)

100.130.101.101 100.130.101.102 100.130.101.103

另一个不同的查询给出了节点:devops-test-srv01 devops-test-srv02 devops-test-srv03

我尝试了这样的自定义值,并使用了${label:text}和${label:value},其中我只使用标签作为过滤器,而且我不想每次都在生产中进行自定义100.130.101.101 : devops-test-srv01,100.130.101.102 : devops-test-srv02,100.130.101.103 : devops-test-srv03

如何在查询中映射两个标签,以便我不必在新集群中的自定义值中再次手动重新配置?

普罗米修斯· 格拉法纳

评论

0赞 markalex 11/14/2023
你能制造一个查询,在单个“行”内返回这些指标吗?类似 .{instance="100.100.100.100", dns_name="test-srv.example.com", someotherlabels="...."}

答:

0赞 star67 11/14/2023 #1

看起来在这两种情况下,您都可以从初始标签值的最后 2 位数字中制作标签名称:

https://regex101.com/r/rufmke/1

所以你可能想使用 label_replace()

label_replace(kubelet_runtime_operations_total, "instanceNew", "devops-test-srv$1", "instance", ".*(\\d\\d)$")

--->

kubelet_runtime_operations_total{instance='100.130.101.103', instanceNew='devops-test-srv03'} 1
kubelet_runtime_operations_total{instance='devops-test-srv03', instanceNew='devops-test-srv03'} 2

评论

0赞 markalex 11/14/2023
通过解释如何将这两个标签解析为变量、文本和值字段,可能会对这个答案有所帮助。