我如何知道 Jenkins 作业完成后在等待队列中等待了多长时间?
How can I know how long a Jenkins job has been in the wait queue after the job is finished?
为了统计,我想看看作业在等待队列中的时间,因此我可以调整系统以使作业及时运行。
如果任务刚好在队列中,可以在首页的等待队列中找到How can I tell how long a Jenkins job has been in the wait queue?
或者http://<jenkins_url>/queue/api/json?pretty=true
是否可以在某处检查以在作业完成后获取特定作业的 "Time waiting in queue"?
如果能在 public jenkins API.
中得到就好了
// 得到了同事的回答
可以通过安装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()
您可以在下面看到 运行 使用 docker 的演示,并在浏览器中打开 demo
作业
docker run -it -p 8080:8080 larrycai/jenkins-metrics
为了统计,我想看看作业在等待队列中的时间,因此我可以调整系统以使作业及时运行。
如果任务刚好在队列中,可以在首页的等待队列中找到How can I tell how long a Jenkins job has been in the wait queue?
或者http://<jenkins_url>/queue/api/json?pretty=true
是否可以在某处检查以在作业完成后获取特定作业的 "Time waiting in queue"?
如果能在 public jenkins API.
中得到就好了// 得到了同事的回答
可以通过安装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()
您可以在下面看到 运行 使用 docker 的演示,并在浏览器中打开 demo
作业
docker run -it -p 8080:8080 larrycai/jenkins-metrics