对于统计数据,我想查看作业在等待队列中的时间,因此我可以调整系统以使作业及时运行。
如果作业刚刚进入队列,则可以在首页的等待队列中找到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中获得,那将会很好。
答案 0 :(得分:18)
//得到了同事的回答
可以通过安装Jenkins Metrics Plugin安装完成后在构建结果页面中实现,您将看到
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 run -it -p 8080:8080 larrycai/jenkins-metrics