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

发布于 2025-01-07 15:30:08 字数 31 浏览 0 评论 0 原文

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

Do you know how to determine each job execution count for given period?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

短暂陪伴 2025-01-14 15:30:08

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

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

时间戳本身是标准的毫秒数自纪元以来

以下 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 以获得所需的结果。

The following XPath expression will return the number of builds with timestamps between 1329817773921 and 1329834427888 for job MyJobName:

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

The timestamps themselves are the standard number of milliseconds since the epoch.

The following XPath can be used to determine the number of different jobs on the server:

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

The following XPath can be used to determine the name of the third job on the server:

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

You can write a short shell script that combines those queries executed via wget to get the desired result.

不回头走下去 2025-01-14 15:30:08

根据 @malenkly_scot 的回答,我设法检索有关上个月工作数量的统计信息。

步骤如下:

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

http://buildcontrol//api/xml?depth=2&xpath=%28/hudson/job[build[timestamp%3E=1328054460000%20and%20timestamp%3C=1330560060000]]%29&wrapper=jenkins

您可以使用此页面解析时间戳值:Epoch 转换器

  • 应用 xslt 转换来统计作业



姓名;计数;


;
;

  • 将转换结果粘贴到 Excel 中,排序即可:)

Basing on @malenkly_scot answer I managed to retrieve statistic information about jobs count during last month.

Below the steps:

  • First retrieve data from Jenkins (thanks @malenkly_scot!)

http://buildcontrol//api/xml?depth=2&xpath=%28/hudson/job[build[timestamp%3E=1328054460000%20and%20timestamp%3C=1330560060000]]%29&wrapper=jenkins

You can use this page to resolve timestamp values: Epoch converter

  • Apply xslt transformation to count jobs

<?xml version="1.0" encoding="utf-8"?>
<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">

<xsl:template match="/">
name;count;
<xsl:apply-templates select="/jenkins/job"></xsl:apply-templates>
</xsl:template>

<xsl:template name="job" match="/jenkins/job">
<xsl:apply-templates select="displayName"/>;<xsl:value-of select="count(./build)"/>
<xsl:text>;
</xsl:text>
</xsl:template>

</xsl:stylesheet>

  • Paste the result of the transformation to excel, sort and there it is :)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文