Help us learn about your current experience with the documentation. Take the survey.

指标报告

  • Tier: Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

指标报告在合并请求中显示自定义指标,用于跟踪分支之间的性能、内存使用情况和其他测量结果。

使用指标报告可以:

  • 监控内存使用情况的变化。
  • 跟踪负载测试结果。
  • 衡量代码复杂度。
  • 比较代码覆盖率统计数据。

指标处理工作流

当流水线运行时,GitLab 会从报告产物中读取指标,并将其存储为字符串值以进行比较。默认文件名为 metrics.txt

对于合并请求,GitLab 会将功能分支的指标与目标分支的值进行比较,并按以下顺序在合并请求组件中显示它们:

  • 值发生变化的现有指标。
  • 由合并请求添加的指标(标有 新增 徽章)。
  • 由合并请求移除的指标(标有 已移除 徽章)。
  • 值未发生变化的现有指标。

配置指标报告

将指标报告添加到您的 CI/CD 流水线中,以便在合并请求中跟踪自定义指标。

前提条件:

要配置指标报告:

  1. 在您的 .gitlab-ci.yml 文件中,添加一个生成指标报告的作业。
  2. 向该作业添加一个以 OpenMetrics 格式生成指标的脚本。
  3. 配置该作业,使用 artifacts:reports:metrics 上传指标文件。

例如:

metrics:
  stage: test
  script:
    - echo 'memory_usage_bytes 2621440' > metrics.txt
    - echo 'response_time_seconds 0.234' >> metrics.txt
    - echo 'test_coverage_percent 87.5' >> metrics.txt
    - echo '# EOF' >> metrics.txt
  artifacts:
    reports:
      metrics: metrics.txt

流水线运行后,指标报告将显示在合并请求组件中。

Metrics report widget in a merge request displaying metric names and values.

有关更多格式规范和示例,请参阅 Prometheus 文本格式详情

故障排除

在使用指标报告时,您可能会遇到以下问题。

指标报告未发生变化

在合并请求中查看指标报告时,您可能会看到 指标报告扫描未检测到新的更改

出现此问题的原因可能是:

  • 目标分支没有用于比较的基线指标报告。
  • 您的 GitLab 订阅不包含指标报告(需要 Premium 或 Ultimate 版本)。

要解决此问题:

  1. 确认您的 GitLab 订阅版本包含指标报告功能。
  2. 确保目标分支有一个已配置指标报告的流水线。
  3. 验证您的指标文件使用了有效的 OpenMetrics 格式。