2012-02-21 62 views
1

你知道如何确定给定期间的每个工作执行计数吗?如何确定哪些工作在詹金斯经常执行?

+0

为什么你需要这些信息?你有很多工作吗? – Bernard 2012-02-21 17:20:19

+0

@Bernard是的,我在Jenkins服务器上有大约100个工作。我想知道哪些比别人更多使用。 – 2012-02-22 08:24:48

+0

你还没有说过你为什么需要知道?好奇心?家政? – Bernard 2012-02-22 13:38:37

回答

3

以下XPath表达式将返回的数量与建立和1329817773921之间1329834427888时间戳工作MyJobName

http://[jenkins_server]/api/xml?depth=2&xpath=string(count(/hudson/job[name='MyJobName']/build[timestamp>=1329817773921 and timestamp<=1329834427888])) 

时间戳本身是标准的毫秒数since the epoch的。

以下XPath可以用来确定不同岗位的服务器上的数字:

http://[jenkins_server]/api/xml?depth=2&xpath=string(count(/hudson/job)) 

以下XPath可以用来确定服务器上的第三作业的名称:

http://[jenkins_server]/api/xml?depth=2&xpath=/hudson/job[3]/name/text() 

您可以编写一个简短的shell脚本,将通过wget执行的查询组合起来以获得所需的结果。

1

基于@malenkly_scot答案我设法检索上个月期间有关作业计数的统计信息。

以下步骤:

  • 首先从詹金斯检索数据(!感谢@malenkly_scot)

的http:// // buildcontrol API/XML深度= 2 &的XPath = %28 /哈德森/作业[构建[时间戳%3E = 1328054460000%20于是%20timestamp%3C = 1330560060000]]%29 &包装=詹金斯

您可以使用此页面来解决时间戳值:Epoch converter

  • 应用XSLT转换来算就业

< XML版本= “1.0” 编码= “UTF-8”? > 0x38ns:stylesheet version =“1.0” result-prefixes =“msxsl”>

< xsl:template match =“/”> name; count; < XSL:申请模板选择= “/詹金斯/工作” > </XSL:申请模板> </XSL:模板>

<的xsl:模板名称= “工作” 匹配=“/詹金斯/作业“> < xsl:apply-templates select =”displayName“/ >; < xsl:value-of select =“count(。/编译)“/ > <的xsl:文本>; </XSL:文本> </XSL:模板>

</XSL:样式>

  • 粘贴的结果转化为卓越,排序和它是:)