【问题标题】:Multipy metric with SUM将矩阵与 SUM 相乘
【发布时间】:2021-08-05 19:14:00
【问题描述】:

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

我想做的事:

MeticOne * SUM(MetricTwo)

谢谢

【问题讨论】:

    标签: prometheus grafana


    【解决方案1】:

    假设您有MetricOne,标签为idname。你有MetricTwo,标签也有idname。然后你有来自MetricTwo 的值的总和,由id 使用度量:

    sum without (name) (MetricTwo)
    

    您可以使用on(id)group_left 在普罗米修斯中“加入”:

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

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

    改进:

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

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

    然后你可以使用之前相同的previous操作符:

    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

    【讨论】:

      猜你喜欢
      • 2015-01-24
      • 2016-12-11
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 2016-05-22
      相关资源
      最近更新 更多