我想将一个指标与另一个指标的最大数量进行聚合。
指标 1:
0:00 | 0:01 | 0:02 | |
---|---|---|---|
实例1 | 1 | 1 |
|
实例2 | 2 |
|
2 |
实例3 |
|
3 | 3 |
指标 2:
0:00 | 0:01 | 0:02 | |
---|---|---|---|
实例1 | 1 | 12 |
|
实例2 | 1 |
|
14 |
实例3 |
|
3 | 3 |
例如,指标 1 的聚合结果为
(3,2,1)
。
使用结果
max(metric2)
是
(3,14,23)
,它可以映射到(instance3, instance2, instance1)
。我想将此结果的实例应用回 metric1。
查询
metric1 and on(instance) topk(1, metric2)
将返回您想要的数据。
这里:
topk(1, metric2)
取 metric2
的前 1 个值(对于每个时间戳独立)。它与 max
类似,但保留原始指标的标签。and on(instance)
根据右侧是否存在相应标签 metric1
过滤掉 instance
的结果。