群组价值流分析

价值流分析提供有关软件开发过程每个阶段的指标。

使用价值流分析来识别:

  • 从构思到生产所需的时间。
  • 特定项目的速度。
  • 开发过程中的瓶颈。
  • 检测长期运行的议题或合并请求。
  • 导致您的软件开发生命周期减慢的因素。

价值流分析也可用于项目

查看价值流分析

先决条件:

  • 您必须至少具有报告者角色才能查看群组的价值流分析。
  • 您必须创建一个自定义价值流。价值流分析仅显示为您的团队创建的自定义价值流。

要查看群组的价值流分析:

  1. 在顶部栏上,选择 菜单 > 群组 并找到您的群组。
  2. 在左侧边栏上,选择 分析 > 价值流
  3. 要查看每个阶段的指标,在 过滤结果 文本框上方,选择一个阶段。
  4. 可选。过滤结果:
    1. 选择 过滤结果 文本框。
    2. 选择一个参数。
    3. 选择一个值或输入文本来优化结果。
    4. 选择是否查看具有开始或停止事件的项目的指标:
      • 要查看日期范围内具有停止事件的项目,请打开 按停止日期过滤 切换。默认启用。
      • 要查看日期范围内具有开始事件的项目,请关闭 按停止日期过滤 切换。
    5. 要调整日期范围:
      • 字段中,选择开始日期。
      • 字段中,选择结束日期。
  5. 可选。按升序或降序对结果进行排序:
    • 要按最新或最旧的工作流程事项排序,请选择 合并请求议题 header,header 名称因您选择的阶段而异。
    • 要按每个阶段花费的时间最多或最少进行排序,请选择 时间 标题。

该表显示所选阶段的相关工作流事项列表。根据您选择的阶段,可以是:

  • CI/CD 作业
  • 议题
  • 合并请求
  • 流水线

查看每个开发阶段花费的时间

价值流分析显示了每个开发阶段中议题或合并请求所花费的平均时间。

要查看每个阶段花费的中位时间:

  1. 在顶部栏上,选择 菜单 > 群组 并找到您的群组。
  2. 在左侧边栏上,选择 分析 > 价值流
  3. 可选。过滤结果:
    1. 选择 过滤结果 文本框。
    2. 选择一个参数。
    3. 选择一个值或输入文本来优化结果。
    4. 选择是否查看具有开始或停止事件的项目的指标:
      • 要查看日期范围内具有停止事件的项目,请打开 按停止日期过滤 切换。默认启用。
      • 要查看日期范围内具有开始事件的项目,请关闭 按停止日期过滤 切换。
    5. 调整日期范围:
      • 字段中,选择开始日期。
      • 字段中,选择结束日期。
  4. 要查看每个阶段的中位时间,请在 过滤结果 文本框上方,指向一个阶段。

查看议题的前置时间和周期时间

价值流分析显示群组中议题的前置时间和周期时间:

  • 前置时间:从创建议题到关闭议题的时间中位值。
  • 周期时间:从第一次提交到议题关闭的时间的中位值。当用户在提交消息中交叉链接时,提交与议题相关联。

要查看议题的前置时间和周期时间:

  1. 在顶部栏上,选择 菜单 > 群组 并找到您的群组。
  2. 在左侧边栏上,选择 分析 > 价值流
  3. 可选。过滤结果:
    1. 选择 过滤结果 文本框。
    2. 选择一个参数。
    3. 选择一个值或输入文本以优化结果。
    4. 选择是否查看具有开始或停止事件的项目的指标:
      • 要查看日期范围内具有停止事件的项目,请打开 按停止日期过滤 切换。默认启用。
      • 要查看日期范围内具有开始事件的项目,请关闭 按停止日期过滤 切换。
    5. 调整日期范围:
      • 字段中,选择开始日期。
      • 字段中,选择结束日期。

前置时间周期时间 指标显示在 过滤结果 文本框下方。

查看合并请求变更的前置时间

引入于 14.5 版本

变更的前置时间是合并请求从合并到部署到生产之间的持续时间的中位值。

要查看群组中合并请求变更的前置时间:

  1. 在顶部栏上,选择 菜单 > 群组 并找到您的群组。
  2. 在左侧边栏上,选择 分析 > 价值流
  3. 可选。过滤结果:
    1. 选择 过滤结果 文本框。
    2. 选择一个参数。
    3. 选择一个值或输入文本来优化结果。
    4. 选择是否查看具有开始或停止事件的项目的指标:
      • 要查看日期范围内具有停止事件的项目,请打开 按停止日期过滤 切换。默认启用。
      • 要查看日期范围内具有开始事件的项目,请关闭 按停止日期过滤 切换。
    5. 调整日期范围:
      • 字段中,选择开始日期。
      • 字段中,选择结束日期。

过滤结果 文本框下方显示 变更的前置时间 指标。

查看成功部署的数量

群组价值流分析的 DORA API-based 部署指标于 14.3 版本,从旗舰版移动到专业版

要查看部署指标,您必须配置生产环境。

价值流分析显示您项目的以下部署指标:

  • 部署:日期范围内成功部署的次数。
  • 部署频率:日期范围内每天成功部署的平均次数。

查看群组的部署指标:

  1. 在顶部栏上,选择 菜单 > 群组 并找到您的群组。
  2. 在左侧边栏上,选择 分析 > 价值流
  3. 可选。过滤结果:
    1. 选择 过滤结果 文本框。
    2. 选择一个参数。
    3. 选择一个值或输入文本来优化结果。
    4. 选择是否查看具有开始或停止事件的项目的指标:
      • 要查看日期范围内具有停止事件的项目,请打开 按停止日期过滤 切换。默认启用。
      • 要查看日期范围内具有开始事件的项目,请关闭 按停止日期过滤 切换。
    5. 调整日期范围:
      • 字段中,选择开始日期。
      • 字段中,选择结束日期。

部署部署频率 指标显示在 过滤结果 文本框下方。

部署指标是根据 DORA API 中的数据计算的。

note在 13.9 及更高版本中,指标是根据部署完成的时间计算的。在 13.8 及更早版本中,指标是根据创建部署的时间计算的。

价值流分析如何测量每个阶段

价值流分析使用开始和结束事件来测量议题或合并请求在每个阶段花费的时间。

例如,一个阶段可能会在用户向议题添加标记时开始,并在他们添加另一个标记时结束。 如果事项尚未到达结束事件,则该事项不包含在阶段时间计算中。

价值流分析允许您根据预定义的事件自定义您的阶段。为了使配置更容易,系统提供了可用作模板的预定义阶段列表。

下表进一步描述了价值流分析的每个预定义阶段。

阶段 测量方法
Issue 创建议题和采取行动解决议题之间的时间中位值,方法是标记议题或将其添加到里程碑。仅当标记已经包含为标记创建的议题看板列表时,才会跟踪标记。
Plan 您为上一阶段执行的操作与将第一次提交推送到分支之间的时间中位数。第一个分支提交会触发从 PlanCode 的转换,并且该分支中至少有一个提交必须包含相关的议题编号(例如 #42)。如果提交中不包含议题编号,则该数据不包含在阶段的测量时间中。
Code 推送第一次提交(上一阶段)和创建合并请求之间的时间中位数。使用合并请求描述中的议题关闭 pattern 跟踪该过程。例如,如果使用 Close #xxx pattern 关闭议题,则 xxx 是合并请求的议题编号。如果没有关闭 pattern,则将开始时间设置为第一次提交的创建时间。
Test 所有流水线从开始到结束的时间。测量为该项目运行整个流水线的时间中位数。与 GitLab CI/CD 为推送到该合并请求的提交运行每个作业所需的时间相关,如前一阶段所定义。
Review 从创建到合并,评审具有关闭议题 pattern 的合并请求所需的时间中位值.
Staging 将合并请求(具有关闭议题 pattern)合并到第一次部署到生产环境之间的时间中位值。没有生产环境就不会收集数据。

示例工作流

此示例显示了一天内通过所有七个阶段的工作流。在此示例中,已创建里程碑并配置了用于测试和设置环境的 CI。

  • 09:00:创建议题。Issue 阶段开始。
  • 11:00:将议题添加到里程碑,开始处理议题,并在本地创建分支。Issue 阶段结束,Plan 阶段开始。
  • 12:00:进行第一次提交。
  • 12:30:对提及议题编号的分支进行第二次提交。Plan 阶段结束,Code 阶段开始。
  • 14:00:推送分支并创建包含议题关闭 pattern 的合并请求。Code 阶段结束,TestReview 阶段开始。
  • CI 需要 5 分钟来运行 .gitlab-ci.yml 中定义的脚本。Test 阶段结束。
  • 审核合并请求。
  • 19:00:合并合并请求。Review 阶段结束,Staging 阶段开始。
  • 19:30:部署到“生产”环境开始并完成。Staging 阶段结束。

价值流分析记录每个阶段的以下时间:

  • Issue: 09:00 to 11:00: 2 hrs
  • Plan: 11:00 to 12:00: 1 hr
  • Code: 12:00 to 14:00: 2 hrs
  • Test: 5 minutes
  • Review: 14:00 to 19:00: 5 hrs
  • Staging: 19:00 to 19:30: 30 minutes

此示例还有一些其它注意事项:

  • 尽管此示例在稍后的提交中指定了议题编号,但该过程仍会收集议题的分析数据。
  • Test 阶段所需的时间包含在 Review 流程中,因为每个合并请求都应进行测试。
  • 此示例仅说明了多个阶段的一个循环。价值流分析仪表盘显示计算出的这些议题的平均运行时间。
  • 价值流分析根据环境的部署级别识别生产环境。

价值流分析如何识别生产环境

价值流分析通过查找名称与以下任何 pattern 匹配的项目环境来识别生产环境:

  • prodprod/*
  • productionproduction/*

这些 pattern 不区分大小写。

您可以在 GitLab CI/CD 配置中更改项目环境的名称。

自定义价值流

使用自定义价值流,创建与您自己的开发流程相一致的自定义阶段,并隐藏默认阶段。仪表盘将阶段描述为水平流程。

创建价值流

每个组都可以轻松获得默认价值流。您可以根据您想要测量的不同工作区域,创建更多的价值流。

创建后,新的价值流包括遵循 GitLab 工作流程 最佳实践的阶段。您可以通过添加、隐藏或重新排序阶段来自定义此流程。

创建价值流:

  1. 在顶部栏上,选择 菜单 > 群组 并找到您的组。
  2. 在左侧边栏中,选择 分析 > 价值流
  3. 如果这是您第一次创建价值流,请选择 创建自定义价值流。否则,在右上角,选择下拉列表,然后选择 创建新价值流
  4. 输入新价值流的名称。
    • 您可以自定义阶段。
  5. 选择 创建价值流

New value stream

note如果您最近升级到专业版,则收集和显示数据最多可能需要 30 分钟。

创建具有阶段的价值流

您可以创建具有阶段的价值流,从默认模板或空白模板开始。您可以根据需要添加阶段。

要创建具有阶段的价值流:

  1. 在顶部栏上,选择 菜单 > 群组 并找到您的群组。
  2. 在左侧边栏中,选择 分析 > 价值流
  3. 如果这是您第一次创建价值流,请选择 创建自定义价值流。否则,在右上角,选择下拉列表,然后选择 创建新价值流
  4. 选择 从默认模板创建从无模板创建
    • 您可以隐藏或重新排序价值流中的默认阶段。

    Default stage actions

    • 您可以通过选择 添加另一个阶段 来添加新阶段。
    • 您可以选择阶段的名称以及开始和结束事件。

      Custom stage actions

  5. 选择 创建价值流

基于标记的阶段

预定义的开始和结束事件可以涵盖涉及议题和合并请求的许多用例。

在更复杂的工作流程中,使用基于群组标记的阶段,事件基于已添加或已删除的标记。范围标记对于复杂的工作流程很有用。

在这个例子中,我们想测量从 staging 环境部署到生产环境的时间。工作流如下:

  • 当代码部署到 staging 时,workflow::staging 标记被添加到合并请求中。
  • 当代码部署到生产环境时,workflow::production 标记被添加到合并请求中。

Label-based value stream analytics stage

编辑价值流

引入于 13.10 版本

创建价值流后,您可以对其进行自定义以满足您的目的。编辑价值流:

  1. 在顶部栏上,选择 菜单 > 群组 并找到您的组。
  2. 在左侧边栏中,选择 分析 > 价值流
  3. 在右上角,选择下拉列表,然后选择相关的价值流。
  4. 在价值流下拉列表旁边,选择 编辑。编辑表单中填入了价值流详细信息。
  5. 可选:
    • 重命名价值流。
    • 隐藏或重新排序默认阶段。
    • 删除现有的自定义阶段。
    • 通过选择“添加另一个阶段”按钮添加新阶段
    • 选择 staging 的开始和结束事件。
  6. 可选。要撤消任何修改,请选择 恢复价值流默认值
  7. 选择 保存价值流

删除价值流

要删除自定义价值流:

  1. 在顶部栏上,选择 菜单 > 群组 并找到您的群组。
  2. 在左侧边栏中,选择 分析 > 价值流
  3. 在右上角,选择下拉列表,然后选择您要删除的价值流。
  4. 选择 删除(价值流名称)
  5. 要确认,请选择 删除

Delete value stream

查看一个周期完成的天数

总时间图表显示完成开发周期所需的平均天数。 该图表显示最后 500 个工作流事项的数据。

  1. 在顶部栏上,选择 菜单 > 群组 并找到您的群组。
  2. 在左侧边栏上,选择 分析 > 价值流
  3. 过滤结果 框上方,选择一个阶段:
    • 要查看所有阶段的周期时间摘要,请选择 概览
    • 要查看特定阶段的周期时间,请选择一个阶段。
  4. 可选。过滤结果:
    1. 选择 过滤结果 文本框。
    2. 选择一个参数。
    3. 选择一个值或输入文本来优化结果。
    4. 调整日期范围:
      • 字段中,选择开始日期。
      • 字段中,选择结束日期。

工作类型 - 按类型划分的任务图表

此图表显示每天的议题和合并请求的累积计数。

此图表使用全局页面过滤器来显示基于所选群组、项目和时间范围的数据。该图表默认显示议题的计数,但可以切换显示合并请求的数据,并针对特定的群组级标记进一步细化。

默认情况下,顶级群组级别标记(最多 10 个)是预先选择的,最多可以选择 15 个标记。