在我的公司中,我们正在使用Jenkins管道,我们希望收集有关管道每个步骤所需时间的指标,以衡量更改所带来的性能改进。
我们有许多不同的流水线,每条流水线都有几个步骤(从5到15个步骤),我们想知道每条流水线的每一个步骤
1.步骤和管道的名称
1.每次运行所需的步骤时间
1.特定管道运行中使用的参数(例如,在某些管道中,我们只能启用功能的子集,这可能会影响某些阶段,如设置)
我发现了几个可以提供这些信息的API,例如。
- https://jenkins.example.com/api/json?tree=jobs[name]
- https://jenkins.example.com/job/<job_name>/<run_number>/API/json
- https://jenkins.example.com/job/<job_name>/wfapi/runs
但这意味着翻转#1以检索所有流水线,翻转#2以检索所有运行(具有参数)或每个运行的每个流水线,并且最后翻转#3以检索所有阶段与时间。
它是否存在和API,可以为每个管道的每个运行提供阶段和参数?或者甚至可以提供这些信息的插件也可以,只要我仍然可以在存储到DB中之前添加一些额外的数据。
编辑:我也检查了Blue Ocean API,但似乎它们将返回或多或少相同的信息,我将从Jenkins本身获得:所以我将拥有所有信息,但我必须使用三重循环(和大量请求)或更改逻辑(例如,修改每个管道以收集和发送其信息)。
1条答案
按热度按时间vlurs2pr1#
你的第二个选择更合理(修改每个管道以收集和发送其信息)。为了防止代码重复,请创建一个shared library,其中包含一个函数以收集信息并发送信息。然后,您可以将此共享库导入到您的管道并在阶段中使用其函数。任何时候,您需要更改代码的功能,你可以改变共享库,改变会传播到你的代码所在的管道。