最轻量直观的瓶颈识别方式是直接在Jenkins Web界面打开Pipeline Stage View,可实时查看各stage状态、耗时与卡点;支持自动刷新、颜色高亮、日志跳转,并可结合Blue Ocean、REST API及Prometheus+Grafana进行深度分析。

直接在 Jenkins Web 界面打开 Pipeline Stage View(阶段视图),就能实时看到长链路流水线中每个 stage 的执行状态、耗时与卡点——这是最轻量、最直观的瓶颈识别方式。
启用并访问原生 Stage View
Jenkins 2.x 默认内置该功能。进入任一 Pipeline 任务页面后,点击顶部导航栏的 Stage View 标签页,即可看到横向展开的阶段流程图。每个 stage 显示:当前状态(运行中/成功/失败/不稳定)、执行时长、开始时间、重试按钮。若某 stage 长时间处于“运行中”且无日志滚动,大概率就是瓶颈所在。
关键细节:
- Stage View 自动刷新(默认 5 秒轮询),无需手动刷新页面
- 失败或不稳定的 stage 会高亮为红色/黄色,悬停可查看简要错误摘要
- 点击 stage 名称可跳转至对应控制台日志,精准定位到具体 step 的卡顿或异常输出
结合 Blue Ocean 提升长链路可读性
对于含 10+ stage 或多分支嵌套的复杂流水线,原生 Stage View 可能横向过长、信息密度低。此时推荐安装 Blue Ocean 插件(需 Jenkins ≥ 2.138.4):
- 安装后,任务页右上角出现 Open in Blue Ocean 按钮
- Blue Ocean 以垂直时间轴 + 折叠子阶段方式展示全流程,支持一键展开 parallel 分支、快速筛选失败 stage
- 它还能识别
unstable和warnError步骤,并将仅导致不稳定的 stage 单独标为黄色,避免与完全失败混淆
用 REST API + 脚本辅助自动识别慢阶段
当需批量分析或集成到巡检脚本中时,可通过 Jenkins API 获取 stage 级耗时数据:
- 调用地址:
curl -u 用户名:密码 http://jenkins-server/job/项目名/lastBuild/wfapi/describe - 返回 JSON 中每个 stage 含
durationMillis和status字段 - 示例判断逻辑(bash):
jq '.stages[] | select(.durationMillis > 300000) | .name'—— 找出单阶段超 5 分钟的名称
该方式适合定时扫描历史构建,生成慢 stage 排行榜,而非实时监控。
配合 Prometheus + Grafana 定位系统级瓶颈
Stage 卡住未必是代码问题,也可能是资源不足。启用 Prometheus Metrics Plugin 后,在 Grafana 中创建以下关键面板:
- Stage 执行时长分位图(P95/P99):对比不同 stage 的耗时分布,确认是否某 stage 普遍变慢
- Executor 使用率 vs 队列长度:若队列持续堆积但 executor 利用率低,说明是 I/O 或网络阻塞(如拉镜像慢、上传制品超时)
-
节点磁盘 I/O wait 时间:结合 Linux 的
iostat -x 1,验证是否因工作空间写入慢拖累 stage 进度
这类指标帮你区分是流水线逻辑瓶颈,还是底层环境瓶颈。











