流水线度量是什么
流水线度量用数据治理 CI/CD:成功率、时长、排队、重跑率、缓存命中与失败分类。它服务的是一个改进循环——识别瓶颈、小步实验、复测验证,而不是考核个人。行业上常以 DORA 四项指标(部署频率、变更前置时间、变更失败率、恢复时长)为框架,起步阶段先把「成功率 + 分位时长」两个数看清就够用了。
基本信息
| 适用平台 | GitLab / GitHub / Jenkins 等均可通过 API 或插件取数 |
|---|---|
| 核心指标 | 成功率、平均与分位时长、排队时间、重跑率 |
| 质量侧 | 失败分类(代码、用例、环境、基础设施) |
| 改进循环 | 看板 → 定位 → 小步实验 → 复测,保留变更记录 |
典型使用场景
- 容量规划:排队时间持续上升说明执行机不足,扩容有据可依
- 提速立项:用分位时长定位最慢阶段,不做凭感觉的优化
- 稳定性治理:重跑率与失败分类暴露不稳定用例与基础设施短板
- 迁移复盘:平台或工具链切换前后对比前置时间与失败率
- 周期汇报:向管理层展示研发效能的趋势而非单点数字
采集示例(GitLab API)
采集示例(GitLab API)
curl -s --header "PRIVATE-TOKEN: $TOKEN" \
"https://gitlab.example.com/api/v4/projects/$PROJECT_ID/pipelines?status=success&per_page=100" | jq length
# 统计最近 100 次运行里成功的条数,按周采集画趋势
# 失败明细看作业名与失败原因,重跑次数单独计,别并入成功率核心指标口径
| 指标 | 口径 | 异常信号 |
|---|---|---|
| 成功率 | 成功流水线 / 总流水线,按周统计 | 持续低于约定线说明流程或环境有系统性问题 |
| 时长 | p50 与 p95 分开看 | 平均平稳但 p95 上涨:长尾在恶化 |
| 排队时间 | 从触发到开始执行的等待 | 持续上升 = 执行资源不足 |
| 重跑率 | 重跑次数 / 总运行次数 | 升高说明不稳定用例或环境抖动 |
度量目的是改进不是考核:指标与个人绩效直接挂钩会诱发数据操纵,比如拆小流水线、关掉失败用例。
先定口径再收数:成功率算不算取消的流水线、重跑算几个样本,口径一变曲线就失去可比性,变更口径要在图上标注。