如何收集Gitlab用户的问题创建/关闭量等指标并统计用户绩效?
用Prometheus+Grafana监控Gitlab用户绩效指标
第一步:开启Gitlab自带的Prometheus监控
Gitlab本身内置了Prometheus exporter,无需额外安装插件。找到服务器上的/etc/gitlab/gitlab.rb配置文件,将prometheus['enable'] = true这行注释打开(去掉前面的#),然后执行gitlab-ctl reconfigure重启服务。
之后访问你的Gitlab域名拼接/-/metrics路径(比如https://gitlab.example.com/-/metrics),能看到一堆指标输出就说明配置成功,里面包含了Issue相关的统计项。
第二步:配置Prometheus抓取Gitlab数据
打开Prometheus的prometheus.yml配置文件,添加以下抓取任务:
scrape_configs: - job_name: 'gitlab' static_configs: - targets: ['gitlab.example.com:443'] # 替换为你的Gitlab域名和端口 scheme: https tls_config: insecure_skip_verify: true # 自签证书环境可开启,生产环境建议配置合法证书 authorization: credentials: 'glpat-xxxxxx' # 使用Gitlab管理员的个人访问令牌,需开启read_api权限
修改完成后重启Prometheus,进入Prometheus的/targets页面,确认gitlab任务状态为up即可。
第三步:用PromQL提取用户级Issue指标
Gitlab暴露的指标中,核心的Issue统计项有:
gitlab_issues_created_total:按作者、项目维度统计的Issue创建总数gitlab_issues_closed_total:按作者、项目维度统计的Issue关闭总数
常用查询语句示例:
- 查询单个用户的Issue创建数:
sum(gitlab_issues_created_total{author_username="zhangsan"}) by (author_username) - 对比所有用户的创建/关闭Issue数:同时执行
sum(gitlab_issues_created_total) by (author_username)和sum(gitlab_issues_closed_total) by (author_username)
第四步:Grafana可视化配置
- 添加Prometheus数据源:在Grafana左侧菜单点击「数据源」,新增Prometheus类型数据源,填入你的Prometheus访问地址(比如
http://prometheus.example.com:9090),保存并测试连接。 - 创建可视化仪表盘:
- 添加柱状图面板,使用
sum(gitlab_issues_created_total) by (author_username)作为查询语句,可展示所有用户的Issue创建数排名。 - 新增面板或在同一面板添加第二条曲线,使用关闭数的查询语句,对比用户创建与关闭Issue的数量差异。
- 配置时间范围过滤器(比如近7天、近30天),查看不同周期的用户绩效表现。
- 添加柱状图面板,使用
其他可行方案
1. Gitlab API+自定义脚本+时序数据库
如果需要自定义更多统计维度(比如Issue优先级、处理时长),可以采用这种方案:
- 编写脚本调用Gitlab的
/api/v4/issues接口,按author_username或author_id筛选数据,统计每个用户的Issue创建、关闭数量。 - 设置定时任务(比如每日凌晨)执行脚本,将统计数据存入InfluxDB或TimescaleDB等时序数据库,再通过Grafana连接数据库实现可视化。
2. Gitlab内置分析功能
Gitlab的「Analytics」模块自带Issue分析能力,在群组或项目层级均可访问。进入模块后可按用户筛选,查看其创建、关闭Issue的趋势,甚至能统计Issue处理时长。对于40人规模的团队,基础绩效统计需求完全可以通过内置功能满足,无需搭建额外工具。
3. ELK Stack(Elasticsearch+Logstash+Kibana)
如果需要同时监控用户的代码提交、MR合并等其他Gitlab行为,可以使用ELK Stack:
- 将Gitlab的事件日志导入Logstash,清洗后存入Elasticsearch。
- 在Kibana中创建可视化仪表盘,不仅能统计用户的Issue相关指标,还能关联其他行为数据做综合绩效分析。
内容的提问来源于stack exchange,提问作者sysoptr
相关产品推荐
相关产品推荐

