将矩阵与 SUM 相乘
Multipy metric with SUM
我想将一个指标乘以另一个指标的总和
我想尝试做的事情:
MeticOne * SUM(MetricTwo)
谢谢
假设您有 MetricOne
,标签为 id
和 name
。你有 MetricTwo
和标签 id
和 name
。然后,您得到 MetricTwo
中 id
使用指标聚合的值的总和:
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_id
和 name
,我们想将其重新标记为 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.
我想将一个指标乘以另一个指标的总和
我想尝试做的事情:
MeticOne * SUM(MetricTwo)
谢谢
假设您有 MetricOne
,标签为 id
和 name
。你有 MetricTwo
和标签 id
和 name
。然后,您得到 MetricTwo
中 id
使用指标聚合的值的总和:
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_id
和 name
,我们想将其重新标记为 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.