0%

GitLab Pipeline统计

需求描述

计划对CICD进行优化,主要包括降低pipeline的失败率和降低构建发布时间。

最开始,要对pipeline进行统计,搞清楚当前的情况,做到心里有“数”,制定合理的目标。
优化一段时间后,需要再用相同的统计方法对pipeline进行统计,看看优化的效果。

好了,问题来了:怎样统计最近两个月的gitlab pipeline?
具体需求包括:

  • 总的pipeline次数
  • 成功的pipeline次数
  • 失败的pipeline次数
  • 取消的pipeline次数
  • 跳过的pipeline次数
  • 耗时超过5分钟的pipeline次数
  • 耗时超过10分钟的pipeline次数
  • 耗时超过半小时的pipeline次数
  • 耗时超过1小时的pipeline次数
  • pipeline的失败率

使用GitLab的Analytics可以看到部分我们想要的数据,比如某个月的pipeline总次数,失败的总次数等。但是并不能根据我们的需要选择时间段进行统计,也不能统计pipeline的持续时间,因此最好的方法是通过GitLab API进行统计。

参考文档:Pipelines API

需求处理

以下内容主要来自chatgpt,稍作修改。

获取API Token

在 GitLab 中获取 API 访问 token 的步骤如下:

  1. 登录到 GitLab 网站。

  2. 点击右上角头像,选择 “Settings”。

  3. 在左侧菜单栏中,选择 “Access Tokens”。

  4. 输入一个描述信息,并选择需要授予 API 访问权限的范围,然后点击 “Create Personal Access Token”。

  5. 复制生成的访问 token。

请注意,访问 token 是敏感信息,请妥善保管,不要泄露给他人。此外,为了保证安全性,建议定期更换访问 token。

代码

完整代码请访问:gitlab-pipeline-statistics/statistics.py

以上代码适用于GitLab 14.0.5 ,其他版本不一定适用。

注意:成功次数+失败次数+取消次数+跳过次数 != 总次数
因为除了这四种常见状态,还有七种状态,具体状态可以参考Pipelines API

  • 本文作者: 好好学习的郝
  • 本文链接: https://www.voidking.com/dev-gitlab-pipeline-statistics/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!源站会及时更新知识点及修正错误,阅读体验也更好。欢迎分享,欢迎收藏~