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

GitLab CI流水线生成的指标能否通过Grafana外部访问?

如何在GitLab外部(如Grafana)使用CI流水线生成的metrics报告指标

当然可以,以下是几种可行的实现方式:

  • 通过GitLab API提取指标文件
    GitLab的API支持获取流水线job的artifact文件,步骤如下:

    1. 调用GET /projects/:id/pipelines/:pipeline_id/jobs接口,定位到生成metrics报告的job ID;
    2. 调用GET /projects/:id/jobs/:job_id/artifacts接口,下载对应的metrics文件(默认是metrics.txt,也可能是你自定义的文件名);
    3. 解析下载的Prometheus格式文本文件,将数据导入Grafana,或者让Prometheus定期抓取这些数据后供Grafana查询。
  • 在CI中直接推送metrics到Prometheus
    借助Prometheus Pushgateway,你可以在CI流水线里把生成的metrics直接推送到Pushgateway,这样Grafana就能通过Prometheus数据源直接获取这些指标。示例CI配置片段:

    collect_and_push_metrics:
      script:
        # 生成符合Prometheus格式的metrics文件
        - echo "build_duration_seconds{branch=\"$CI_COMMIT_BRANCH\"} 45.2" > metrics.txt
        - echo "test_pass_rate{job=\"unit_test\"} 0.98" >> metrics.txt
        # 推送到Pushgateway
        - curl --data-binary @metrics.txt http://your-pushgateway-url:9091/metrics/job/gitlab-ci/${CI_PROJECT_NAME}
      artifacts:
        reports:
          metrics: metrics.txt
    

    注意要保证CI runner能访问到Pushgateway,后续在Grafana中配置对应的Prometheus数据源即可。

  • 利用GitLab内置的Prometheus集成
    如果你的GitLab实例已经开启了Prometheus集成,GitLab会自动收集CI流水线中生成的自定义metrics。你可以直接在Grafana中添加GitLab的Prometheus数据源,通过类似gitlab_ci_job_artifact_metrics的指标查询语句获取数据,无需额外的文件下载或推送操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:47:22