在我的公司中,我们正在使用 Jenkins 管道,我们希望收集有关管道每个步骤所需时间的指标,以便衡量变更带来的性能改进。
我们有很多不同的管道,每个管道有几个步骤(从5到15个步骤),我们想知道每个管道的每个步骤
我发现了几个可以提供这些信息的API,例如
但这意味着迭代#1以检索所有管道,迭代#2以检索所有运行(带参数)或每次运行的每个管道,最后迭代#3以检索所有阶段的时间。
是否存在可以为每个管道的每次运行提供所有运行阶段和参数的 API?或者甚至可以提供这些信息的插件也可以,前提是我仍然可以在存储到数据库之前添加一些额外的数据。
编辑:我还检查了 Blue Ocean API,但似乎它们会返回或多或少与我从 Jenkins 本身获得的信息相同的信息:所以我将拥有所有信息,但我必须使用三重循环(和很多请求)或更改逻辑(例如修改每个管道以收集和发送其信息)。
您的第二个选择更有意义(修改每个管道以收集和发送其信息)。为了防止代码重复,请创建一个具有收集信息并发送信息的功能的共享库。然后,您可以将此共享库导入到管道中并在阶段中使用其功能。任何时候您需要更改代码的功能时,您只需更改共享库即可,更改将传播到使用您的代码的管道。