prometheus - 将矩阵与 SUM 相乘

标签 prometheus grafana

我想将一个指标与另一个指标之和的结果相乘

我想尝试做的事情:

MeticOne * SUM(MetricTwo)

谢谢

最佳答案

假设您有带有标签 idnameMetricOne。并且您有 MetricTwo 以及标签 idname。然后,您将获得按 id 使用指标聚合的 MetricTwo 值的总和:

sum without (name) (MetricTwo)

您可以使用 on(id)group_left 在 prometheus 中进行“加入”:

MetricOne 
* on (id) group_left() 
(sum without (name) (MetricTwo))

仅当 MetricOne 中的标签 id 也是您所在的 MetricTwo 上的 id 时,这才可能实现加入。因此,如果它们不同,尽管有行需要匹配,但您可能会看到空结果查询!

改进:

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

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

然后您可以使用与 before 相同的前一个运算符:

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

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

关于prometheus - 将矩阵与 SUM 相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68672348/

相关文章:

kubernetes - 带有 Weave CNI 插件的 AWS EKS K8s 集群不能有自定义指标

mysql - 更新\插入数据从grafana到mysql

influxdb - 如何在 Grafana 表(或 singlestat)中显示 InfluxDB 测量的最新时间戳?

mongodb - Mongodb Atlas 与 Grafana 的集成

Prometheus - 通过正则表达式聚合和重新标记

Prometheus 服务因无效参数错误而失败

go - 使用计数器,如何在服务器崩溃后继续计数?

kubernetes - k8s pod 重新启动时如何对 prometheus 计数器求和

Java 内存不足。这不是内存泄漏吗?

sorting - 如何在 Prometheus/Grafana 中按系列名称对图例进行排序