2012-02-21 64 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:樣式>

  • 粘貼的結果轉化爲卓越,排序和它是:)