如何确定Jenkins中最常执行的作业?

时间:2012-02-21 13:12:58

标签: xml api xslt hudson jenkins

您知道如何确定给定时期内的每个作业执行次数吗?

2 个答案:

答案 0 :(得分:3)

以下XPath表达式将返回作业 MyJobName 13298177739211329834427888之间时间戳的构建数:

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 :(得分:1)

基于@malenkly_scot回答我设法检索上个月有关工作计数的统计信息。

以下步骤:

  • 首先从Jenkins检索数据(感谢@malenkly_scot!)
  ?

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

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

  • 将xslt转换应用于计算作业
  

&lt;?xml version =“1.0”encoding =“utf-8”?&gt;   &lt; xsl:stylesheet version =“1.0”xmlns:xsl =“http://www.w3.org/1999/XSL/Transform”       xmlns:msxsl =“urn:schemas-microsoft-com:xslt”exclude-result-prefixes =“msxsl”&gt;

     

&lt; xsl:template match =“/”&gt;       名称;计数;       &lt; xsl:apply-templates select =“/ jenkins / job”&gt;&lt; / xsl:apply-templates&gt;     &LT; / XSL:模板&GT;

     

&lt; xsl:template name =“job”match =“/ jenkins / job”&gt;       &lt; xsl:apply-templates select =“displayName”/&gt ;;&lt; xsl:value-of select =“count(./ build)”/&gt;       &LT; XSL:文本取代;     &LT; / XSL:文本&GT;     &LT; / XSL:模板&GT;

     

&LT; / XSL:样式表&GT;

  • 将转换的结果粘贴到Excel,排序,然后是:)