如何在Grafana仪表盘中合并两类资源的label_values标签列表?
合并Prometheus两个label_values结果的方法
嘿,这个场景我之前刚好处理过!要把来自aws_lambda_info和s3这两个指标的标签值合并,用PromQL里的简单写法就能搞定,下面给你两种常用方案:
方案1:使用or运算符(兼容所有主流Prometheus版本)
这是最通用的写法,利用or的结果合并特性,把两个label_values查询的结果组合到一起,还会自动去重:
label_values(aws_lambda_info{a="a", b="b"}, a) or label_values(s3{a="a", b="b"}, a)
方案2:使用union函数(适合Prometheus v2.37及以上版本)
如果你的Prometheus版本比较新(v2.37+),可以用union函数,语义更明确,一看就知道是在合并两个结果集:
union(label_values(aws_lambda_info{a="a", b="b"}, a), label_values(s3{a="a", b="b"}, a))
小提示
不管用哪种方法,最终返回的都是两个查询结果的并集,重复的标签值会被自动去除——这也是标签合并场景下最常用的需求。如果特殊情况需要保留重复值,那可能需要结合其他函数处理,但一般来说上面两种方法就足够啦。
内容的提问来源于stack exchange,提问作者Hello lad
相关产品推荐
相关产品推荐

