我正在尝试获取Jenkins构建队列中的构建数量。
请问Jenkins命令是什么,可以获取在队列中运行的构建数量?
我正在尝试获取Jenkins构建队列中的构建数量。
请问Jenkins命令是什么,可以获取在队列中运行的构建数量?
请查看Jenkins的远程访问API。
使用以下方式访问API描述:
http://<Your Jenkins>/api/
并且使用以下代码来获取实际数据:
http://<Your Jenkins>/api/xml
构建队列有自己独立的API:
http://<Your Jenkins>/queue/api/
使用其数据:
http://<Your Jenkins>/queue/api/xml
如果您更喜欢使用json
格式,可以选择该选项,只需在URL中将xml
替换为json
:
http://<Your Jenkins>/queue/api/json
使用Jenkins脚本控制台很容易实现:
println Hudson.instance.queue.items.length
// => 2
还可以远程执行Groovy脚本。例如,从命令行:
$ curl -u username:password -d "script=println Hudson.instance.queue.items.length" jenkins_url/scriptText
2
_queuesize=$(curl -s -k -m 60 http://${yourjenkinsserver}:8180/jenkins/queue/api/xml 2>/dev/null | grep -c '<item>')
if [[ -z "${_queuesize}" ]]; then
_queuesize=0;
fi
使用强大的“jq”工具定义单个bash变量就足以获取队列长度:
QUEUE_SIZE=$(curl -s -k http://<your-jenkins-here>/queue/api/json | jq '.items | length')
虽然略微相关,但如果您正在寻找用于监控队列大小的工具,则有一个 Jenkins 插件可供 Munin 使用,可以实现此功能(以及其他一些功能):
https://gallery.munin-monitoring.org/plugins/munin-contrib/jenkins_/
get_jobs()
Get list of jobs running.
Each job is a dictionary with ‘name’, ‘url’, and ‘color’ keys.
Returns: list of jobs, [ { str: str} ]
Jenkins.instance.queue.items.size()
,或者如果您从脚本中调用它,则为jenkins.model.Jenkins.instance.queue.items.size()
。请将其翻译为中文。 - jpyams