我看到一个可能的解决方案,不确定是否有帮助,但肯定是
尝试。
算法步骤:
1)维护一个直接父子文件(即JobA:JobB,JobA:JobC,JobA:JobC,
JobC:JobD等),即该文件将告诉每个Job X,什么是
直接子子/下游工作。通过Jenkins Groovy脚本,
可以轻松生成/使用该脚本。PS:您可以在此
文件中添加更多列,即JobA:JobB:Build:Sequential或JobA:JobB:Test:Parallel,以获得
更好的水平指标来计算周转时间/每个给定步骤
(构建,测试,部署等),以及父级作业是否按
顺序或与两个或多个作业并行地称为子级作业)并相应地计算指标
。
2)在“构建管道视图”配置(设置)中,设置编号。的作业
显示为
1。PS:如果要捕获该
主管道作业的给定管道版本号,则可以将其设置为5、10或更多。
出于测试目的,我仅显示1个管道构建运行。 在此处输入图片说明
3)在Linux中,使用curl,在
build-pipeline-view的NAME 上获取“ View Source” HTML页面信息(PS:这不在主要管道
作业上)。例如,不适用于jobA或xxvt-main,在这种情况下,请使用视图
名称URL(显示整个管道)。假设视图名称(通过
Build Pipeline View插件)被创建为“ MyPipelineView ”,例如:curl -s http://my-jenkins-server:8080/view/MyPipelineView/ > /tmp/9.txt
这将为您提供HTML内容。将此信息存储在某个文件中
(临时)。假设我将其存储在/tmp/9.txt
3)运行以下命令以获取作业的内部版本号。根据第二个
较小的管道图像(在我的帖子中),其输出将是:
grep -o ""extId":"[a-zA-Z0-9_-][a-zA-Z0-9_-]*#[0-9][0-9]*"" /tmp/9.txt
这将为您提供类似输出(使用sed / cut使其更清晰):
"extId":"xxvt_main#157""extId":"xxvt_splunk_run_collect_operation#29""extId":"xxvt_splunk_run_process_operation#29""extId":"xxvt_splunk_update_date_restart_splunk#29""extId":"xxvt_splunk_get_jenkins_data#38""extId":"xxvt_splunk_get_clearquest_dr_data#47"
4) 现在,使用父子(直接关系)文件(我们在项目符号1中生成),有了给定管道运行的上述输出,我们可以使用它来创建最终的构建管道树文件,即
xxvt_main#157 called: xxvt_splunk_get_jenkins_data#38xxvt_main#157 called: xxvt_splunk_get_clearquest_dr_data#47xxvt_main#157 called: xxvt_splunk_run_collect_operation#29xxvt_splunk_run_collect_operation#29 called: xxvt_splunk_run_process_operation#29xxvt_splunk_run_process_operation#29 called: xxvt_splunk_update_date_restart_splunk#29
5) 当知道一个给定的运行相关的 作业名称和它的内部版本号,我们
可以使用詹金斯的api/json?pretty=true&depth=1 or 2 or 3细心,来获取
我们想要获取的指标,并最终创建/想出了一个.csv领域
在你喜欢的任何格式的文件,其中将具有给定
管道运行的指标-HORIZONTALLY。



