将矩阵与 SUM 相乘

Multipy metric with SUM

我想将一个指标乘以另一个指标的总和

我想尝试做的事情:

MeticOne * SUM(MetricTwo)

谢谢

假设您有 MetricOne,标签为 idname。你有 MetricTwo 和标签 idname。然后,您得到 MetricTwoid 使用指标聚合的值的总和:

sum without (name) (MetricTwo)

您可以使用 on(id)group_left:

在普罗米修斯中进行“加入”
MetricOne 
* on (id) group_left() 
(sum without (name) (MetricTwo))

只有当来自 MetricOne 的标签 id 也是您要加入的 MetricTwo 上的 id 时,这才有可能。因此,如果它们不同,您可能会看到一个空的结果查询,尽管有匹配的行!

改进:

然后就到了需要使用label_replace重命名一个指标的标签并使其与另一个指标的标签相匹配的时候了。假设 MetricOne 带有标签 metric_one_idname,我们想将其重新标记为 id。你必须这样做:

label_replace(MetricOne,"id","","metric_one_id", "(.+)")

然后你可以使用之前相同的前一个运算符:

label_replace(MetricOne,"id","","metric_one_id", "(.+)") 
* on (metric_one_id) group_left() 
(sum without (name) (MetricTwo))

关于group_left()group_left()内的所有内容都将被排除在结果中。因此,如果您有更多标签,您可以将它们添加到 group_left()without() 中。 Prometheus 文档解释了 group_left 运算符 here.