如何在作业完成后知道Jenkins作业在等待队列中的时间长度?

时间:2015-02-26 05:24:22

标签: groovy jenkins

对于统计数据,我想查看作业在等待队列中的时间,因此我可以调整系统以使作业及时运行。

如果作业刚刚进入队列,则可以在首页的等待队列中找到How can I tell how long a Jenkins job has been in the wait queue?

http://<jenkins_url>/queue/api/json?pretty=true

在作业结束后,是否有可能检查某个位置以获取特定作业的“队列中的等待时间”?

如果可以在公共jenkins API中获得,那将会很好。

1 个答案:

答案 0 :(得分:18)

//得到了同事的回答

可以通过安装Jenkins Metrics Plugin安装完成后在构建结果页面中实现,您将看到

time wait in queue

Jenkins REST API :然后您可以从http://localhost:8080/job/demo/1/api/json?pretty=true&depth=2获取队列中的等待时间。 queuingDurationMillis是我想要的数据。

"actions" : [
{
  "queuingDurationMillis" : 33,
  "totalDurationMillis" : 3067
}
],

Groovy脚本:我们也可以通过内部数据在groovy中获取这些数据,查看Jenkins脚本控制台http://localhost:8080/script中的以下代码

job = hudson.model.Hudson.instance.getItem("demo")
build = job.getLastBuild()
action = build.getAction(jenkins.metrics.impl.TimeInQueueAction.class)
println action.getQueuingDurationMillis()

您可以通过在下面运行并在浏览器中打开demo作业

来使用docker查看演示
docker run -it -p 8080:8080 larrycai/jenkins-metrics