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

Lar*_*Cai 12 groovy jenkins

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

如果作业只是在队列中,则可以在首页的等待队列中查找如何判断Jenkins作业在等待队列中的持续时间?

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

在作业完成后,是否可以检查某处以获得特定作业的"队列中的等待时间"?

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

Lar*_*Cai 20

//得到了同事的回答

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

时间排队等候

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

"actions" : [
{
  "queuingDurationMillis" : 33,
  "totalDurationMillis" : 3067
}
],
Run Code Online (Sandbox Code Playgroud)

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()
Run Code Online (Sandbox Code Playgroud)

您可以通过在下面运行并在浏览器中打开demo作业来使用docker查看演示

docker run -it -p 8080:8080 larrycai/jenkins-metrics
Run Code Online (Sandbox Code Playgroud)