如何合并Prometheus中标签值不匹配的一对一指标?
解决Prometheus指标标签不完全匹配时的相加问题
要实现标签不完全匹配的两个指标相加,且缺失标签的指标视为0值,你可以通过PromQL的unless和+组合来实现,无需提前知晓标签值:
(metric1 unless metric2) + (metric2 unless metric1) + (metric1 + metric2)
原理说明:
metric1 unless metric2:返回仅metric1存在的时间序列(比如示例中的instance="a"),保留metric1的原始值。metric2 unless metric1:返回仅metric2存在的时间序列(比如示例中的instance="c"),保留metric2的原始值。metric1 + metric2:返回两者都存在的时间序列(比如示例中的instance="b"),返回两者的和。- 将这三部分相加后,就能得到所有标签对应的结果:独有的标签保留原始值,共有的标签返回和值。
如果你的指标有多个标签需要对齐,只需在操作中用on(label1, label2)限定匹配维度即可(比如metric1 unless on(instance, env) metric2)。
内容的提问来源于stack exchange,提问作者user10489
相关产品推荐
相关产品推荐

