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

如何在Azure DevOps 2020中获取近30天代理池历史数据生成小时级消耗图

Azure DevOps 2020 代理池小时级消耗数据获取方案

数据接口调用(基于内置REST API 6.0版本)

Azure DevOps 2020 原生提供了分布式任务相关的接口,不需要额外安装扩展即可拉取全量作业运行数据:

  • 第一步:获取目标代理池ID
    调用接口 GET https://<你的DevOps服务地址>/<集合名称>/_apis/distributedtask/pools?api-version=6.0,返回结果中对应代理池的id字段即为后续请求需要的池ID。
  • 第二步:拉取30天内的全量作业请求记录
    调用接口 GET https://<你的DevOps服务地址>/<集合名称>/_apis/distributedtask/pools/<代理池ID>/jobrequests?api-version=6.0&minLastChangedDate=<30天前的ISO格式时间>&maxLastChangedDate=<当前ISO格式时间>,即可拿到指定时间范围内所有作业的调度、运行、完成全链路记录。

小时级粒度数据聚合逻辑

接口返回的jobRequests列表中,每条记录包含queueTime(入队时间)、startTime(开始运行时间)、finishTime(结束时间)、reservedAgentId(占用代理ID)字段,按以下规则聚合即可得到趋势图所需数据:

  • 按自然小时切割时间窗口,统计每个小时窗口内处于运行状态的作业数量、占用的代理数量,即可得到代理池的并发消耗趋势
  • 用每个小时内所有作业的(finishTime - startTime)求和后,除以(代理池总代理数 * 3600秒),即可得到该小时的代理池利用率数值
  • 如果需要统计队列拥堵情况,聚合每个小时内作业的(startTime - queueTime)的平均值/最大值即可

高数据量场景适配

如果30天内的作业量超过1000条,接口单次返回会自动截断,需要通过分页拉取全量数据:
每次接口请求的响应头中会返回x-ms-continuationtoken字段,将该值作为continuationToken参数拼接到下一次请求的URL中,重复调用直到响应头无该字段即可拉取全量数据。

如果你使用的是Azure DevOps 2020 RTM初始版本,将上述接口的api-version参数改为5.1即可正常调用,返回字段结构完全兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:45:02