PromQL 与另一个指标中的最大值聚合

问题描述 投票:0回答:1

我想将一个指标与另一个指标的最大数量进行聚合。

指标 1:

0:00 0:01 0:02
实例1 1 1
1
实例2 2
2
2
实例3
3
3 3

指标 2:

0:00 0:01 0:02
实例1 1 12
23
实例2 1
14
14
实例3
3
3 3

例如,指标 1 的聚合结果为

(3,2,1)

使用结果

max(metric2) 

(3,14,23)
,它可以映射到
(instance3, instance2, instance1)
。我想将此结果的实例应用回 metric1。

prometheus grafana promql
1个回答
0
投票

查询

metric1 and on(instance) topk(1, metric2)

将返回您想要的数据。

这里:

  • topk(1, metric2)
    metric2
    的前 1 个值(对于每个时间戳独立)。它与
    max
    类似,但保留原始指标的标签。
  • and on(instance)
    根据右侧是否存在相应标签
    metric1
    过滤掉
    instance
    的结果。
© www.soinside.com 2019 - 2024. All rights reserved.