收集每个构建的每个步骤的时间和参数

问题描述 投票:0回答:1

在我的公司中,我们正在使用 Jenkins 管道,我们希望收集有关管道每个步骤所需时间的指标,以便衡量变更带来的性能改进。

我们有很多不同的管道,每个管道有几个步骤(从5到15个步骤),我们想知道每个管道的每个步骤

  1. 步骤和管道的名称
  2. 每次运行该步骤需要多少时间
  3. 特定管道运行中使用的参数(例如,在某些管道中,我们只能启用功能的子集,这可能会影响某些阶段,例如设置)

我发现了几个可以提供这些信息的API,例如

  1. https://jenkins.example.com/api/json?tree=jobs[名称]
  2. https://jenkins.example.com/job///api/json
  3. https://jenkins.example.com/job//wfapi/runs

但这意味着迭代#1以检索所有管道,迭代#2以检索所有运行(带参数)或每次运行的每个管道,最后迭代#3以检索所有阶段的时间。

是否存在可以为每个管道的每次运行提供所有运行阶段和参数的 API?或者甚至可以提供这些信息的插件也可以,前提是我仍然可以在存储到数据库之前添加一些额外的数据。

编辑:我还检查了 Blue Ocean API,但似乎它们会返回或多或少与我从 Jenkins 本身获得的信息相同的信息:所以我将拥有所有信息,但我必须使用三重循环(和很多请求)或更改逻辑(例如修改每个管道以收集和发送其信息)。

jenkins metrics
1个回答
0
投票

您的第二个选择更有意义(修改每个管道以收集和发送其信息)。为了防止代码重复,请创建一个具有收集信息并发送信息的功能的共享库。然后,您可以将此共享库导入到管道中并在阶段中使用其功能。任何时候您需要更改代码的功能时,您只需更改共享库即可,更改将传播到使用您的代码的管道。

© www.soinside.com 2019 - 2024. All rights reserved.