You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何跨不同Pod查询test_coverage指标的最新值

问题描述

我有一个服务用于从Pull Request中收集项目的test_coverage数据,采集器部署在不同Pod中,数据示例如下:

test_coverage{project="a", pod="pod-a"} 80@1684921872
                                        82@1684921882
test_coverage{project="a", pod="pod-b"} 90@1684982920

我希望获取跨不同Pod的最新测试覆盖率值(即90),尝试使用last_over_time(test_coverage{project="a"}[1w])后得到两个结果:

test_coverage{project="a", pod="pod-a"} 82
test_coverage{project="a", pod="pod-b"} 90

请问如何仅返回值90?

解决方案

你可以通过聚合函数去掉pod标签并筛选出目标值,根据实际需求选择以下两种方式:

方式1:取所有Pod最新值中的最大值

如果你的场景里最新的覆盖率恰好是最大值(如示例中的90),可以用max聚合函数:

max(last_over_time(test_coverage{project="a"}[1w]))

last_over_time先获取每个Pod的最新覆盖率,max再从这些值中取出最大的那个,同时自动去掉pod标签,最终只返回90。

方式2:取所有Pod中最新采集的覆盖率值

如果需要严格获取时间戳最晚的采集值(不管数值大小),可以用topk聚合函数配合by ()去掉标签:

topk(1, last_over_time(test_coverage{project="a"}[1w])) by ()

topk(1, ...)会选出所有序列中时间戳最晚的那个值,by ()则移除所有标签,最终只返回该值。

内容的提问来源于stack exchange,提问作者Tom76kimo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 10:50:17