价值流分析
- Tier: 基础版, 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
价值流分析
价值流分析通过跟踪合并请求或议题事件来衡量从一个想法到生产所需的时间。
价值流 是向客户交付价值的整个工作过程。例如,DevOps 生命周期是一个价值流,始于“管理”阶段,结束于“保护”阶段。
使用价值流分析来识别:
- 从一个想法到生产所需的时间量。
- 给定项目的速度。
- 开发过程中的瓶颈。
- 长期运行的议题或合并请求。
- 导致软件开发生命周期变慢的因素。
价值流分析帮助企业:
- 可视化其端到端 DevSecOps 工作流。
- 识别并解决低效问题。
- 优化其工作流以更快地交付更多价值。
价值流分析可用于项目和群组。
功能可用性
价值流分析在项目和群组级别为基础版和授权版本提供不同的功能。
- 在极狐GitLab基础版中,价值流分析不汇总数据。它直接查询数据库,其中日期范围过滤器应用于议题和合并请求的创建日期。您可以查看具有预定义默认阶段的价值流分析。
- 在极狐GitLab专业版中,价值流分析汇总数据并应用日期范围过滤器到结束事件。您还可以创建、编辑和删除价值流。
| 功能 | 群组级别(授权) | 项目级别(授权) | 项目级别(基础版) |
|---|---|---|---|
| 创建自定义价值流 | 是 | 是 | 否,仅存在一个价值流(默认)和默认阶段 |
| 创建自定义阶段 | 是 | 是 | 否 |
| 过滤(例如,按作者、标签、里程碑) | 是 | 是 | 是 |
| 阶段时间图 | 是 | 是 | 否 |
| 总时间图 | 是 | 是 | 否 |
| 任务按类型图 | 是 | 否 | 否 |
| DORA 指标 | 是 | 是 | 否 |
| 周期时间和交付时间摘要(生命周期指标) | 是 | 是 | 否 |
| 新议题、提交和部署(生命周期指标) | 是,排除提交 | 是 | 是 |
| 使用汇总后端 | 是 | 是 | 否 |
| 日期过滤器行为 | 过滤在日期范围内完成的项目 | 按创建日期过滤项目。 | 按创建日期过滤项目。 |
| 授权 | 至少为报告者 | 至少为报告者 | 可以公开 |
通过使用新的记录 ProjectNamespace,项目级别与群组级别价值流分析的功能一致性得以实现。有关此整合计划的详细信息,请参阅 组织文档。
价值流分析如何运作
价值流分析计算软件开发过程每个阶段的持续时间。
价值流分析由三个核心对象组成:
- 一个 价值流 包含一个价值流阶段列表。
- 每个价值流阶段列表包含一个或多个 阶段。
- 每个阶段有两个 事件:开始和结束。
价值流阶段
阶段表示事件对(开始和结束事件)以及附加元数据,例如阶段的名称。您可以在后端定义的配对规则中配置阶段。
价值流
价值流是阶段的容器对象。每个群组可以有多个价值流,以关注 DevOps 生命周期的不同方面。
价值流阶段事件
History
- 合并请求首次分配审阅者事件在极狐GitLab 17.2 中引入。在极狐GitLab 17.2 之前创建或更新的合并请求中的审阅者分配事件不可用于报告。
事件是价值流分析功能的最小构建块。阶段由一个开始事件和一个结束事件组成。
以下阶段事件可用:
- 议题已关闭
- 议题已创建
- 议题首次添加到看板
- 议题首次添加到迭代
- 议题首次分配
- 议题首次关联里程碑
- 议题首次提到
- 议题标签已添加
- 议题标签已移除
- 合并请求已关闭
- 合并请求已合并
- 合并请求已创建
- 合并请求首次提交时间
- 合并请求首次分配
- 合并请求首次分配审阅者
- 合并请求首次部署
- 合并请求标签已添加
- 合并请求标签已移除
- 合并请求最后流水线持续时间
- 合并请求最后批准时间
这些事件在持续时间计算中发挥关键作用,计算公式为:持续时间 = 结束事件时间 - 开始事件时间。
要了解可以配对的开始和结束事件,请参阅验证开始和结束事件。
价值流分析如何汇总数据
- Tier: 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
History
- 在极狐GitLab 15.0 中添加了启用按停止日期过滤功能。
价值流分析使用后端过程来收集和汇总阶段级数据,确保其能够处理具有大量议题和合并请求的大型群组。由于这个过程,可能会出现采取行动(例如关闭议题)与数据在价值流分析页面上显示之间的轻微延迟。
处理数据并显示结果可能需要长达 10 分钟的时间。数据收集可能在以下情况下需要超过 10 分钟:
- 如果这是您第一次查看价值流分析,并且尚未创建价值流。
- 如果群组层次结构已重新安排。
- 如果议题和合并请求进行了批量更新。
要查看数据最近更新时间,在 编辑 旁边的右角,悬停在 最近更新 徽章上。
价值流分析如何衡量阶段
价值流分析从其开始事件到结束事件测量每个阶段。 只有达到其结束事件的项目才会包含在阶段时间计算中。
默认情况下,阻塞的议题不包括在生命周期概述中。 但是,您可以使用自定义标签(例如 workflow::blocked)来跟踪它们。
您可以根据预定义的事件自定义价值流分析中的阶段。 为了帮助您进行配置,极狐GitLab 提供了预定义的阶段列表,您可以将其用作模板。 例如,您可以定义一个阶段,该阶段在您向议题添加标签时开始, 并在您添加另一个标签时结束。
下表概述了价值流分析中预定义的阶段。
| 阶段 | 测量方法 |
|---|---|
| 议题 | 创建议题到采取行动解决它之间的中位时间,通过标记它或将其添加到里程碑,以先发生者为准。标签仅在已经为其创建了议题看板列表时进行跟踪。 |
| 计划 | 上一个阶段的行动与首次提交推送到分支之间的中位时间。分支上的首次提交触发 计划 和 代码 之间的分隔。分支中的至少一个提交必须包含相关的议题号(例如 #42)。如果分支中的提交均未提到相关议题号,则不考虑该阶段的测量时间。 |
| 代码 | 推送首次提交(上一个阶段)与创建相关合并请求(MR)之间的中位时间。保持过程跟踪的关键是将议题关闭模式包含在合并请求的描述中。例如,Closes #xxx,其中 xxx 是与此合并请求相关的议题编号。如果关闭模式不存在,则计算使用合并请求中首次提交的创建时间作为开始时间。 |
| 测试 | 运行项目的整个流水线所需的中位时间。它与极狐GitLab CI/CD 运行每个提交推送到该合并请求的作业的时间相关。基本上是所有流水线的开始->完成时间。 |
| 审查 | 审查具有关闭议题模式的合并请求所需的中位时间,从创建到合并。 |
| 测试环境 | 合并具有关闭议题模式的合并请求与首次部署到生产环境之间的中位时间。如果没有生产环境,则不进行跟踪。 |
价值流分析基于时间戳数据工作,仅汇总阶段的最终开始和停止事件。对于多次在阶段之间来回移动的项目,阶段时间仅从最终事件的时间戳计算。
有关价值流分析如何计算每个阶段的信息,请参阅 价值流分析开发指南。
示例工作流
该示例显示了一天内七个阶段的工作流。
如果阶段不包括开始和停止时间,其数据不包括在中位时间中。 在此示例中,已创建里程碑并配置了 CI/CD 用于测试和设置环境。
- 09:00:创建议题。议题 阶段开始。
- 11:00:将议题添加到里程碑(或待办事项),开始处理议题,并在本地创建分支。 议题 阶段停止,计划 阶段开始。
- 12:00:进行首次提交。
- 12:30:进行第二次提交到提到议题编号的分支。 计划 阶段停止,代码 阶段开始。
- 14:00:推送分支并创建包含议题关闭模式的合并请求。代码 阶段停止,测试 和 审查 阶段开始。
- 极狐GitLab CI/CD 运行 .gitlab-ci.yml 文件中定义的脚本需要 5 分钟。
- 19:00:合并合并请求。审查 阶段停止,测试环境 阶段开始。
- 19:30:部署到 生产 环境完成。测试环境 阶段停止。
价值流分析记录每个阶段的以下时间:
- 议题:09:00 到 11:00:2 小时
- 计划:11:00 到 12:00:1 小时
- 代码:12:00 到 14:00:2 小时
- 测试:5 分钟
- 审查:14:00 到 19:00:5 小时
- 测试环境:19:00 到 19:30:30 分钟
请记住与此示例相关的以下观察:
- 该示例表明,即使您的首次提交未提到议题编号,您也可以稍后在您正在处理的分支上的任何提交中进行。
- 测试 阶段用于计算周期的总时间。它包括在审查过程中,因为每个合并请求都应进行测试。
- 此示例仅说明七个阶段中的一个周期。价值流分析仪表板显示多个周期的中位时间。
累积标签事件持续时间
History
- 在极狐GitLab 16.9 中,引入了累积标签事件持续时间功能,使用名为 enable_vsa_cumulative_label_duration_calculation 和 vsa_duration_from_db 命名的功能标志。
- 在极狐GitLab 16.10 中,该功能在极狐GitLab.com 和极狐GitLab 私有化部署上启用,并删除了功能标志 vsa_duration_from_db。
- 在极狐GitLab 17.0 中删除功能标志 enable_vsa_cumulative_label_duration_calculation。
使用此功能,价值流分析测量标签阶段的重复事件的持续时间。您应该为开始和结束事件配置标签移除或添加事件。
例如,一个阶段跟踪 in progress 标签何时添加和移除,时间如下:
- 9:00:标签已添加。
- 10:00:标签已移除。
- 12:00:标签已添加。
- 14:00:标签已移除。
使用原始计算方法,持续时间为五小时(从 9:00 到 14:00)。 启用累积标签事件持续时间计算后,持续时间为三小时(9:00 到 10:00 和 12:00 到 14:00)。
当您将极狐GitLab 版本升级到 16.10(或更高版本)时,现有的基于标签的价值流分析阶段会自动使用后台汇总过程进行重新汇总。
升级后重新汇总数据
- Offering: 私有化部署
在大型实例上,当您升级极狐GitLab版本,特别是如果跳过几个小版本时,后台汇总过程可能会持续更长时间。此延迟可能导致价值流分析页面上的数据过时。 为了加速汇总过程并避免数据过时,您可以在rails 控制台中为给定群组调用同步汇总代码段:
ruby1group = Group.find(-1) # put your group id here 2group_to_aggregate = group.root_ancestor 3 4loop do 5 cursor = {} 6 context = Analytics::CycleAnalytics::AggregationContext.new(cursor: cursor) 7 service_response = Analytics::CycleAnalytics::DataLoaderService.new(group: group_to_aggregate, model: Issue, context: context).execute 8 9 if service_response.success? && service_response.payload[:reason] == :limit_reached 10 cursor = service_response.payload[:context].cursor 11 elsif service_response.success? 12 puts "finished" 13 break 14 else 15 puts "failed" 16 break 17 end 18end 19 20loop do 21 cursor = {} 22 context = Analytics::CycleAnalytics::AggregationContext.new(cursor: cursor) 23 service_response = Analytics::CycleAnalytics::DataLoaderService.new(group: group_to_aggregate, model: MergeRequest, context: context).execute 24 25 if service_response.success? && service_response.payload[:reason] == :limit_reached 26 cursor = service_response.payload[:context].cursor 27 elsif service_response.success? 28 puts "finished" 29 break 30 else 31 puts "failed" 32 break 33 end 34end
价值流分析如何识别生产环境
价值流分析通过寻找项目环境名称与以下模式匹配来识别生产环境:
- prod 或 prod/*
- production 或 production/*
这些模式不区分大小写。
您可以在极狐GitLab CI/CD 配置中更改项目环境的名称。
查看价值流分析
History
- 在极狐GitLab 16.5 中以 vsa_predefined_date_ranges 命名的标志引入了预定义日期范围下拉列表。默认禁用。
- 在极狐GitLab 16.7 中在极狐GitLab 私有化部署和极狐GitLab.com 上启用预定义日期范围下拉列表。
- 在极狐GitLab 16.9 中普遍可用。删除了功能标志 vsa_predefined_date_ranges。
先决条件:
- 您必须至少拥有报告者角色。
- 您必须创建一个自定义价值流。价值流分析仅显示为您的群组或项目创建的自定义价值流。
要查看您的群组或项目的价值流分析:
- 在左侧栏中,选择 搜索或转到 并找到您的项目或群组。
- 选择 分析 > 价值流分析。
- 要查看特定阶段的指标,请选择 过滤结果 文本框下方的一个阶段。
- 可选。过滤结果:
-
选择 过滤结果 文本框。
-
选择一个参数。
-
选择一个值或输入文本以细化结果。
-
要查看特定日期范围内的指标,从下拉列表中选择一个预定义日期范围或 自定义 选项。选择 自定义 选项:
- 在 从 字段中,选择一个开始日期。
- 在 到 字段中,选择一个结束日期。
图表和列表显示在日期范围内创建的工作流项目。
-
- 可选。按升序或降序排序结果:
- 要按最近或最旧的工作流项目排序,请选择 最后事件 标题。
- 要按每个阶段花费的最多或最少时间排序,请选择 持续时间 标题。
工作流项目表头旁边的徽章显示在所选阶段完成的工作流项目数量。
该表显示所选阶段的相关工作流项目列表。基于您选择的阶段,可以是:
- 议题
- 合并请求
每个预定义日期范围的结束日期是当前日期,并包含在所选的天数中。例如,过去 30 天 的开始日期是当前日期的前 29 天,总计 30 天。
数据过滤器
您可以过滤价值流分析以查看符合特定标准的数据。支持以下过滤器:
- 日期范围
- 项目
- 受托人
- 作者
- 里程碑
- 标签
价值流分析指标
价值流分析中的 概览 页面显示项目和群组的 DevSecOps 生命周期性能的关键指标。
生命周期指标
价值流分析包括以下生命周期指标:
- 交付时间:从议题创建到关闭的中位时间。
- 周期时间:首次提交到议题关闭的中位时间。极狐GitLab 从最早提交的 链接议题的合并请求开始计算周期时间,到该议题关闭。 周期时间方法低估了交付时间,因为合并请求创建总是晚于提交时间。
- 新议题:创建的新议题数量。
- 部署:部署到生产的总次数。
DORA 指标
- Tier: 旗舰版
- Offering: JihuLab.com, 私有化部署
History
- 在极狐GitLab 15.0 中引入了恢复服务时间图块。
- 在极狐GitLab 15.0 中引入了变更失败率图块。
价值流分析包括以下 DORA 指标:
- 部署频率
- 变更交付时间
- 恢复服务时间
- 变更失败率
DORA 指标根据 DORA API 的数据进行计算。
如果您有极狐GitLab 专业版或旗舰版订阅:
- 成功部署的数量通过 DORA 数据计算。
- 数据根据环境和环境级别进行过滤。
查看生命周期和 DORA 指标
先决条件:
- 要查看部署指标,您必须配置一个生产环境。
要查看生命周期指标:
- 在左侧栏中,选择 搜索或转到 并找到您的项目或群组。
- 选择 分析 > 价值流分析。 生命周期指标显示在 过滤结果 文本框下方。
- 可选。过滤结果:
- 选择 过滤结果 文本框。 根据您选择的过滤器,仪表板会自动汇总生命周期指标,并显示价值流的状态。
- 选择一个参数。
- 选择一个值或输入文本以细化结果。
- 要调整日期范围:
- 在 从 字段中,选择一个开始日期。
- 在 到 字段中,选择一个结束日期。
- 在左侧栏中,选择 搜索或转到 并找到您的项目或群组。
- 选择 分析 > 价值流分析。
- 在 过滤结果 文本框下方的 生命周期指标 行中,选择 价值流仪表板 / DORA。
- 可选。要打开新页面,请将此路径 /analytics/dashboards/value_streams_dashboard 附加到群组 URL (例如,https://gitlab.com/groups/gitlab-org/-/analytics/dashboards/value_streams_dashboard)。
查看每个开发阶段的指标
价值流分析显示议题或合并请求在每个开发阶段的中位时间。
要查看群组中每个阶段的中位时间:
- 在左侧栏中,选择 搜索或转到 并找到您的项目或群组。
- 选择 分析 > 价值流分析。
- 可选。过滤结果:
- 选择 过滤结果 文本框。
- 选择一个参数。
- 选择一个值或输入文本以细化结果。
- 要调整日期范围:
- 在 从 字段中,选择一个开始日期。
- 在 到 字段中,选择一个结束日期。
- 要查看每个阶段的指标,请在 过滤结果 文本框上方,悬停在一个阶段。
日期范围选择器通过事件时间来过滤项目。事件时间是所选阶段为给定项目完成的时间。
按类型查看任务
- Tier: 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
按类型查看任务 图表显示群组每天完成的任务(关闭的议题和合并的合并请求)的累积数量。
图表使用全局页面过滤器根据所选群组和时间范围显示数据。
要按类型查看任务:
- 在左侧栏中,选择 搜索或转到 并找到您的群组。
- 选择 分析 > 价值流分析。
- 在 过滤结果 文本框下方,选择 概览。按类型查看任务 图表显示在 总时间 图表下方。
- 可选。要按类型过滤任务,请选择 设置 (),然后选择 议题 或 合并请求。
- 可选。要按标签过滤任务,请选择 设置 (),然后选择一个或多个标签。默认情况下选择顶部群组标签(最多 10 个)。您最多可以选择 15 个标签。
创建价值流
- Tier: 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
History
- 在极狐GitLab 16.10 中以 vsa_standalone_settings_page 命名的标志将新价值流从对话框更改为页面。默认情况下禁用。
- 在极狐GitLab 17.7 中普遍可用。删除了功能标志 vsa_standalone_settings_page。
使用极狐GitLab默认阶段创建价值流
创建价值流时,您可以使用极狐GitLab 默认阶段,并隐藏或重新排序它们。您还可以 在默认模板中提供的阶段之外创建自定义阶段。
- 在左侧栏中,选择 搜索或转到 并找到您的项目或群组。
- 选择 分析 > 价值流分析。
- 选择 新价值流。
- 输入价值流的名称。
- 选择 从默认模板创建。
- 自定义默认阶段:
- 要重新排序阶段,请选择向上或向下箭头。
- 要隐藏阶段,请选择 隐藏 ()。
- 要添加自定义阶段,请选择 添加阶段。
- 输入阶段的名称。
- 选择一个 开始事件 和一个 停止事件。
- 选择 新价值流。
如果您最近升级到极狐GitLab 专业版,数据收集和显示可能需要长达 30 分钟。
使用自定义阶段创建价值流
创建价值流时,您可以创建并添加与您自己的开发工作流一致的自定义阶段。
- 在左侧栏中,选择 搜索或转到 并找到您的项目或群组。
- 选择 分析 > 价值流分析。
- 选择 新价值流。
- 对每个阶段:
- 输入阶段的名称。
- 选择一个 开始事件 和一个 停止事件。
- 要添加另一个阶段,请选择 添加阶段。
- 要重新排序阶段,请选择向上或向下箭头。
- 选择 新价值流。
自定义价值流的基于标签的阶段
为了衡量复杂的工作流,您可以使用范围标签。例如,要衡量从测试环境到生产的部署时间,您可以使用以下标签:
- 当代码部署到测试环境时,workflow::staging 标签会被添加到合并请求。
- 当代码部署到生产时,workflow::production 标签会被添加到合并请求。

使用 Webhooks 自动数据标记
您可以使用极狐GitLab Webhook 事件自动添加标签,以便在特定事件发生时将标签应用于合并请求或议题。然后,您可以添加基于标签的阶段来跟踪您的工作流。
自定义价值流配置示例

在上面的示例中,为 测试群组(顶级命名空间)中使用不同开发工作流的两个团队设置了两个独立的价值流。
第一个价值流使用标准时间戳事件来定义阶段。第二个价值流使用标签事件。
编辑价值流
- Tier: 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
History
- 在极狐GitLab 16.10 中以 vsa_standalone_settings_page 命名的标志将编辑价值流从对话框更改为页面。默认情况下禁用。
- 在极狐GitLab 17.7 中普遍可用。删除了功能标志 vsa_standalone_settings_page。
创建价值流后,您可以根据需要进行定制。要编辑价值流:
- 在左侧栏中,选择 搜索或转到 并找到您的项目或群组。
- 选择 分析 > 价值流分析。
- 从价值流下拉列表中,选择要编辑的价值流。
- 在价值流下拉列表旁边,选择 编辑。
- 可选:
- 重命名价值流。
- 隐藏或重新排序默认阶段。
- 移除现有自定义阶段。
- 要添加新阶段,请选择 添加阶段。
- 为阶段选择开始和结束事件。
- 可选。要撤销任何修改,请选择 恢复价值流默认。
- 选择 保存价值流。
删除价值流
- Tier: 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
要删除自定义价值流:
- 在左侧栏中,选择 搜索或转到 并找到您的项目或群组。
- 选择 分析 > 价值流分析。
- 从价值流下拉列表中,选择要删除的价值流,然后选择 删除(价值流名称)。
- 要确认,请选择 删除。
查看一个周期完成所需的天数
- Tier: 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
总时间图表 显示开发周期完成所需的平均天数。 图表显示最后 500 个工作流项目的数据。
- 在左侧栏中,选择 搜索或转到 并找到您的项目或群组。
- 选择 分析 > 价值流分析。
- 在 过滤结果 框上方选择一个阶段:
- 要查看所有阶段的周期时间摘要,请选择 概览。
- 要查看特定阶段的周期时间,请选择一个阶段。
- 可选。过滤结果:
- 选择 过滤结果 文本框。
- 选择一个参数。
- 选择一个值或输入文本以细化结果。
- 要调整日期范围:
- 在 从 字段中,选择一个开始日期。
- 在 到 字段中,选择一个结束日期。
价值流分析的访问权限
价值流分析的访问权限取决于项目类型。
| 项目类型 | 权限 |
|---|---|
| 公开 | 任何人都可以访问。 |
| 内部 | 任何认证用户都可以访问。 |
| 私有 | 任何拥有至少访客角色的用户都可以访问。 |
价值流分析 GraphQL API
- Tier: 基础版, 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
History
- 在极狐GitLab 17.0 中通过 GraphQL 引入了加载阶段指标。
使用 VSA GraphQL API,您可以请求从配置的价值流和价值流阶段获取指标。这在您希望将 VSA 数据导出到外部系统或报告时非常有用。
可用的指标包括:
- 阶段中完成的项目数量。计数限制为最多 10,000 个项目。
- 阶段中完成项目的中位持续时间。
- 阶段中完成项目的平均持续时间。
请求指标
先决条件:
- 您必须至少拥有报告者角色。
首先,您必须确定您想要在报告中使用的价值流。
要请求群组的配置价值流,请运行:
graphql1group(fullPath: "your-group-path") { 2 valueStreams { 3 nodes { 4 id 5 name 6 } 7 } 8}
同样,要请求项目的指标,请运行:
graphql1project(fullPath: "your-project-path") { 2 valueStreams { 3 nodes { 4 id 5 name 6 } 7 } 8}
要请求价值流阶段的指标,请运行:
graphql1group(fullPath: "your-group-path") { 2 valueStreams(id: "your-value-stream-id") { 3 nodes { 4 stages { 5 id 6 name 7 } 8 } 9 } 10}
根据您希望如何消费数据,您可以请求特定阶段或价值流中的所有阶段的指标。
请求所有阶段的指标可能对于某些安装来说过于缓慢。 推荐的方法是逐个阶段请求指标。
请求阶段的指标:
graphql1group(fullPath: "your-group-path") { 2 valueStreams(id: "your-value-stream-id") { 3 nodes { 4 stages(id: "your-stage-id") { 5 id 6 name 7 metrics(timeframe: { start: "2024-03-01", end: "2024-03-31" }) { 8 average { 9 value 10 unit 11 } 12 median { 13 value 14 unit 15 } 16 count { 17 value 18 unit 19 } 20 } 21 } 22 } 23 } 24}
您应该始终在给定时间范围内请求指标。支持的最长时间范围为 180 天。
metrics 节点支持其他过滤选项:
- 受托人用户名
- 作者用户名
- 标签名称
- 里程碑标题
带有过滤器的请求示例:
graphql1group(fullPath: "your-group-path") { 2 valueStreams(id: "your-value-stream-id") { 3 nodes { 4 stages(id: "your-stage-id") { 5 id 6 name 7 metrics( 8 labelNames: ["backend"], 9 milestoneTitle: "17.0", 10 timeframe: { start: "2024-03-01", end: "2024-03-31" } 11 ) { 12 average { 13 value 14 unit 15 } 16 median { 17 value 18 unit 19 } 20 count { 21 value 22 unit 23 } 24 } 25 } 26 } 27 } 28}
最佳实践
- 要获得当前状态的准确视图,请尽可能在时间范围结束时请求指标。
- 对于周期性报告,您可以创建脚本并使用计划流水线功能及时导出数据。
- 调用 API 时,您会从数据库中获取当前数据。随着时间的推移,由于数据库中的底层数据发生变化,相同的指标可能会发生变化。例如,移动或移除群组中的项目可能会影响群组级别的指标。
- 重新请求之前时期的指标并将其与先前收集的指标进行比较可以显示数据中的偏差,这有助于发现和解释变化趋势。
使用价值流预测进行部署频率预测
- Tier: Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
- Status: Experiment
History
- 在极狐GitLab 16.2 中作为实验引入。
通过预测生产力指标和识别软件开发生命周期中的异常来改善您的计划和决策。
先决条件:
- 您必须至少属于一个启用了实验和测试功能设置的群组。
- 您必须有权限查看 CI/CD 分析。
要在 CI/CD 分析中查看部署频率的预测:
- 在左侧栏中,选择 搜索或转到 并找到您的项目。
- 选择 分析 > CI/CD 分析。
- 选择 部署频率 标签。
- 打开 显示预测 切换。
- 在确认对话框中,选择 接受测试条款。
预测以虚线显示在图表上。数据预测的持续时间是所选日期范围的一半。
例如,如果选择 30 天范围,则显示接下来 15 天的预测。

故障排除
Sidekiq cronjob:analytics_cycle_analytics 的 100% CPU 利用率
价值流分析后台作业可能会严重影响性能,导致 CPU 资源被垄断。
要从这种情况中恢复:
-
在Rails 控制台中为所有项目禁用该功能,并删除现有作业:
ruby1Project.find_each do |p| 2 p.analytics_access_level='disabled'; 3 p.save! 4end 5 6Analytics::CycleAnalytics::GroupStage.delete_all 7Analytics::CycleAnalytics::Aggregation.delete_all -
配置一个Sidekiq 路由,例如一个 feature_category=value_stream_management 和多个 feature_category!=value_stream_management 条目。 在企业版列表中找到其他相关的队列元数据。
-
一个一个地为项目启用价值流分析。 您可能需要根据性能要求进一步调整 Sidekiq 路由。