You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求Jenkins构建指标报告方案:Blue Ocean兼容及周度构建状态获取

解决方案:Blue Ocean环境下生成Jenkins构建指标报告

针对你遇到的build-metrics插件不兼容Blue Ocean、Jenkins CLI无法快速获取一周内构建状态的问题,提供以下几种可行方案:

方案1:使用Jenkins REST API(灵活定制首选)

Jenkins REST API比CLI更适合做时间范围过滤,结合jq等工具可以快速提取并统计构建数据:

  1. 先计算一周前的毫秒级时间戳:cutoff=$(($(date -d '7 days ago' +%s)*1000))
  2. 调用API获取目标Job的构建数据,过滤时间范围并提取状态:
curl -s -u 用户名:API_TOKEN "http://你的Jenkins地址/job/目标Job名/api/json?tree=builds[number,result,timestamp]" | jq ".builds[] | select(.timestamp > $cutoff) | .result"
  1. 统计各状态的数量(比如成功、失败、取消):
curl -s -u 用户名:API_TOKEN "http://你的Jenkins地址/job/目标Job名/api/json?tree=builds[number,result,timestamp]" | jq -r ".builds[] | select(.timestamp > $cutoff) | .result" | sort | uniq -c

注意:API_TOKEN需要在Jenkins个人设置中生成,权限要包含Job的读取权限

方案2:使用Blue Ocean兼容的可视化插件

直接用支持Blue Ocean的插件替代build-metrics,无需自己写脚本:

  • Build Monitor Plugin:支持在Blue Ocean中展示多Job的实时构建状态面板,包含成功率、最近构建结果等核心指标,可自定义布局。
  • Pipeline Analytics Plugin:专为Pipeline设计,能生成构建时长趋势、成功率统计、阶段耗时分析等报告,完全兼容Blue Ocean界面。
  • Dashboard View Plugin:可以自定义仪表盘,添加构建统计、趋势图等组件,支持Blue Ocean访问。

方案3:自定义Pipeline脚本收集指标

如果需要高度定制的报告格式,可以在Jenkinsfile中嵌入数据收集逻辑,定期生成报告:

  1. 在Pipeline的post阶段记录每次构建的关键数据到CSV文件(或数据库):
pipeline {
    agent any
    stages {
        // 你的构建阶段
        stage('Build') {
            steps {
                sh 'echo "构建中..."'
            }
        }
    }
    post {
        always {
            script {
                def buildInfo = [
                    jobName: env.JOB_NAME,
                    buildNum: env.BUILD_NUMBER,
                    result: currentBuild.result ?: 'ABORTED',
                    startTime: currentBuild.startTimeInMillis,
                    duration: currentBuild.duration
                ]
                // 追加写入CSV,可配置存储到共享目录或云存储
                writeFile(
                    file: "${env.WORKSPACE}/build-metrics.csv",
                    text: "${buildInfo.jobName},${buildInfo.buildNum},${buildInfo.result},${buildInfo.startTime},${buildInfo.duration}\n",
                    append: true
                )
            }
        }
    }
}
  1. 创建一个定时Job,每周读取CSV文件,用Python/pandas生成可视化报告(比如柱状图、折线图),并发送邮件或发布到Jenkins页面。

方案4:优化Jenkins CLI的使用方式

如果坚持用CLI,可以结合文本处理工具过滤时间范围:

  1. 用CLI导出Job的构建数据为CSV格式:
java -jar jenkins-cli.jar -s http://你的Jenkins地址/ -auth 用户名:API_TOKEN list-builds 目标Job名 --format=csv
  1. 过滤一周内的构建并统计状态:
cutoff=$(date -d '7 days ago' +%s000)
java -jar jenkins-cli.jar -s http://你的Jenkins地址/ -auth 用户名:API_TOKEN list-builds 目标Job名 --format=csv | awk -F ',' -v cutoff=$cutoff '$3 > cutoff {print $4}' | sort | uniq -c

CSV字段说明:第1列是构建号,第2列是构建URL,第3列是时间戳(毫秒),第4列是构建结果

内容的提问来源于stack exchange,提问作者jpolley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 00:25:23