是否有可能对于给定的构建管道作业(在构建中或在构建操作中具有下游作业的下游作业为“ Trigger build on other projects”),我可以获得一个树状列表视图,该视图显示
了调用了哪个管道作业N ,调用顺序中的子项作业(顺序或并行),
并且该管道的子build#运行build#。
对于例如:如果我的工作管道有这样的观点: 那么,在此处输入图片说明
我期望得到类似于(如果我只是
以简单文本格式输入)的热门广告的列表:
vac-3.0-src:52 called: vac-3.0-unit-test-main:37
vac-3.0-unit-test-main:37 called: vac-3.0-unit-testA:36
vac-3.0-unit-test-main:37 called: vac-3.0-unit-testB:36
vac-3.0-unit-test-main:37 called: vac-3.0-unit-testC:35
vac-3.0-unit-test-main:37 called: vac-3.0-unit-testD:35
vac-3.0-unit-test-main:37 called: vac-3.0-unit-testReporting:35
vac-3.0-unit-testReporting:35 called: vac-3.0-integration-test-main:28
vac-3.0-integration-test-main:28 called: vac-3.0-integration-testA:27
vac-3.0-integration-test-main:28 called: vac-3.0-integration-testB:27
vac-3.0-integration-testB:27 called: vac-3.0-acceptance-test:25
vac-3.0-acceptance-test:25 called: vac-3.0-configure-something:24
vac-3.0-configure-something:24 called: vac-3.0-perform-someaction:23
vac-3.0-perform-someaction:23 called: vac-3.0-preview-step:22
vac-3.0-preview-step:22 called: vac-3.0-deb-delivery-job:27
vac-3.0-preview-step:22 called: vac-3.0-rpm-el6:23
vac-3.0-preview-step:22 called: vac-3.0-vagrant-provision:20
vac-3.0-preview-step:22 called: vac-3.0-vagrant-run:21
vac-3.0-vagrant-run:21 called: vac-3.0-demo:10
或可以以更健壮的结构方式来表示此信息,即它可以是JSON blob,其中父作业具有的结构将具有
按管道运行/给定顺序调用的所有作业(并行/顺序)。
我使用Jenkins API(即/api/xmlor/api/json?pretty=true&depth=10更多)尝试了主作业的URL(通过curl),但它没有给我我想要的信息(与给定的管道运行有关)。
该信息可以在管道视图上直观地查看(根据图像),并且有关子项目的一些信息可以在给定的Jenkins作业的仪表板上(它是管道的一部分)获得,但顺序不存在。
如果您尝试解决此问题并有任何解决方案来获取此数据,我们将不胜感激。进行这项工作的原因是针对
给定的管道运行水平查找指标(而不是针对管道的每个单独工作垂直查找指标,因为我已经有了
总时间,构建号,结果等的垂直/单独工作指标),但是如何我可以针对给定的管道运行关联每个作业的指标,这就是我想要得到的。
我看到一个可能的解决方案,不确定是否有帮助,但肯定是
尝试。
算法步骤:
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#38
xxvt_main#157 called: xxvt_splunk_get_clearquest_dr_data#47
xxvt_main#157 called: xxvt_splunk_run_collect_operation#29
xxvt_splunk_run_collect_operation#29 called: xxvt_splunk_run_process_operation#29
xxvt_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。
我编译了hadoop 2.2.0 x64并在集群上运行它。当我执行或时,它会像这样抛出一个NPE: 在hadoop webapp上,比如job历史(我打开job历史服务器)。它显示没有作业正在运行,也没有作业完成,尽管我正在运行作业。 请帮我解决这个问题。
IOException:找不到键类'com.test.serializetest.toto'的序列化程序。如果使用自定义序列化,请确保配置“io.serializations”配置正确。在org.apache.hadoop.io.sequenceFile$writer.init(sequenceFile.java:1179)在org.apache.hadoop.io.sequenceFile$wr
问题内容: 您是否知道/使用任何针对python的分布式作业队列?您可以共享链接或工具吗 问题答案: 如果您使用的是Django,那么除了进行多处理之外,还有Celery项目。
我有一个点列表,每个点都是一个大小为2的小列表。我想按x的递增顺序对点列表进行排序,如果x值相等,我就按y的递减顺序排序来打破平局。 我编写了一个自定义比较器来对点进行排序,如下所示: 以下是排序前的输入: 以下是使用上述比较器排序后产生的结果: 观察:- 输入按x的升序排序。 (5,12)被正确地放在(5,10)之前 (9,-15)被正确地放在(9,-1000)之前 然而,(10001,-10)
我们使用Quartz 2.1.6在集群上进行作业调度,并将作业数据存储在我们的MySQL数据库(MySQL5.1)中的JDBC jobstore中。 我们所有的Quartz配置(调度器、作业、触发器)都是在Spring启动时完成的。我们将数据存储在数据库中以用于聚类目的。