Prometheus PromQL:如何为总聚合指标添加my_label=TOTAL标签并合并结果
解决方案
你可以使用PromQL的label_replace函数给总求和结果手动添加目标标签,再通过or运算符拼接分组求和的结果即可,单条查询语句如下:
sum(my_metric) by (my_label) or label_replace(sum(my_metric), "my_label", "TOTAL", "", "")
逻辑说明
- 前半段
sum(my_metric) by (my_label)就是你原有按my_label分组求和的逻辑,返回带{my_label="A"}、{my_label="B"}标签的结果 - 后半段的
label_replace函数会对无标签的总求和结果注入my_label="TOTAL"标签,参数含义为:- 第一个参数是待处理的指标(这里是总求和结果)
- 第二个参数是要设置的标签名
- 第三个参数是对应标签的取值
- 后两个参数填空字符串表示不需要匹配原有标签,直接新增目标标签
or运算符会自动合并两个查询的返回结果,最终就能得到你预期的三条输出。
内容的提问来源于stack exchange,提问作者semkagtn
相关产品推荐
相关产品推荐

