群组价值流分析

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

价值流是为客户提供价值的整个工作流程。例如,DevOps 生命周期是一个价值流,从管理阶段开始,到防护阶段结束。

使用价值流分析来识别:

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

价值流分析也可用于项目

查看价值流分析

先决条件:

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

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

  1. 在顶部栏上,选择 主菜单 > 群组 并找到您的群组。
  2. 在左侧边栏上,选择 分析 > 价值流
  3. 要查看特定阶段的指标,在 过滤结果 文本框下方,选择一个阶段。
  4. 可选。过滤结果:
    1. 选择 过滤结果 文本框。
    2. 选择一个参数。
    3. 选择一个值或输入文本来优化结果。
    4. 要调整日期范围:
      • 字段中,选择开始日期。
      • 字段中,选择结束日期。
  5. 可选。按升序或降序对结果进行排序: - 要按最新或最旧的工作流程事项排序,请选择 最近活动 header。 - 要按每个阶段花费的最多或最少时间排序,请选择 时长 header。

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

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

查看群组的 DORA 指标和关键指标

价值流分析中的 概览 仪表盘显示了价值流分析的关键指标和 DORA 指标。根据您选择的过滤器,仪表盘会自动汇总 DORA 指标并显示价值流的当前状态。选择 DORA 指标可以查看其图表。

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

查看 DORA 指标和关键指标:

  1. 在顶部栏上,选择 主菜单 > 群组 并找到您的群组。
  2. 在左侧边栏上,选择 分析 > 价值流
  3. 可选。过滤结果:
    1. 选择 过滤结果 文本框。
    2. 选择一个参数。
    3. 选择一个值或输入文本来优化结果。
    4. 调整日期范围:
      • 字段中,选择开始日期。
      • 字段中,选择结束日期。

关键指标和 DORA 指标显示在过滤结果文本框下方。

价值流中的关键指标

概览仪表盘显示以下衡量团队绩效的关键指标:

  • 前置时间:从创建议题到关闭议题的中位时间。
  • 周期时间:从第一次提交到议题关闭的中位时间。系统计算从关联议题的合并请求的最早提交,到该议题关闭的周期时间。周期时间小于前置时间,因为合并请求的创建总是晚于提交时间。
  • 新议题:创建的新议题数量。
  • 部署:部署到生产环境的总数。

DORA 指标

  • 变更的前置时间 DORA 指标引入于 14.5 版本。
  • 群组价值流分析的 DORA API-based 部署指标从旗舰版移动到专业版于 14.3 版本。
  • 恢复服务时间引入于 15.0 版本。
  • 变更失败率引入于 15.0 版本。
  • 为了更好地服务中国企业用户,极狐GitLab 自 15.4 版本开始,将该功能从旗舰版降入专业版。而 GitLab CE 与 EE 版本中,该功能依旧为旗舰版。

价值流分析概览仪表盘显示以下 DORA 指标:

  • 部署频率。
  • 变更的前置时间。
  • 恢复服务时间。
  • 变更失败率。
note在 13.9 及更高版本,部署频率指标是根据部署完成的时间计算的。在 13.8 及更早版本,部署频率指标是根据创建部署的时间计算的。

查看每个开发阶段的指标

  • 引入于 13.0 版本。
  • 功能标志删除于 13.12 版本。

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

要查看一个群组在每个阶段花费的中位时间:

  1. 在顶部栏上,选择 主菜单 > 群组 并找到您的群组。
  2. 在左侧边栏上,选择 分析 > 价值流
  3. 可选。过滤结果:
    1. 选择 过滤结果 文本框。
    2. 选择一个参数。
    3. 选择一个值或输入文本以优化结果。
    4. 调整日期范围:
      • 字段中,选择开始日期。
      • 字段中,选择结束日期。
  4. 要查看每个阶段的指标,在 过滤结果 文本框上方,将鼠标悬停在某个阶段上。
note日期范围选择器按事件时间过滤项目。事件时间是特定项目的选定阶段完成的时间。

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

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

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

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

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

阶段 测量方法
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 配置中更改项目环境的名称。

使用默认阶段创建价值流

引入于 13.3 版本。

创建价值流时,您可以使用默认阶段,并隐藏或重新排序进行自定义。除了默认模板中提供的阶段之外,您还可以创建自定义阶段。

  1. 在顶部栏上,选择 主菜单 > 群组 并找到您的群组。
  2. 在左侧边栏中,选择 分析 > 价值流
  3. 选择 创建新的价值流
  4. 输入价值流的名称。
  5. 选择 从默认模板创建
  6. 自定义默认阶段:
    • 要重新排序阶段,请选择向上或向下箭头。
    • 要隐藏阶段,请选择 隐藏 ()。
  7. 要添加自定义阶段,请选择 添加另一个阶段
    • 输入阶段名称。
    • 选择一个 开始事件 和一个 停止事件
  8. 选择 创建价值流
note如果您最近升级到专业版,则收集和显示数据最多可能需要 30 分钟。

使用自定义阶段创建价值流

创建价值流时,您可以创建和添加与您自己的开发工作流程相一致的自定义阶段。

  1. 在顶部栏上,选择 主菜单 > 群组 并找到您的群组。
  2. 在左侧边栏中,选择 分析 > 价值流
  3. 选择 创建价值流
  4. 对于每个阶段:
    • 输入阶段名称。
    • 选择一个 开始事件 和一个 停止事件
  5. 要添加另一个阶段,请选择 添加另一个阶段
  6. 要重新排序阶段,请选择向上或向下箭头。
  7. 选择 创建价值流

自定义价值流的基于标记的阶段

要衡量复杂的工作流程,您可以使用范围标记。例如,要测量从 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. 调整日期范围:
      • 字段中,选择开始日期。
      • 字段中,选择结束日期。

按类型查看任务

按类型的任务图表显示您的群组每天的累计议题和合并请求数。

该图表使用全局页面过滤器来显示基于所选群组、项目和时间范围的数据。

按类型查看任务:

  1. 在顶部栏上,选择 主菜单 > 群组 并找到您的群组。
  2. 在左侧边栏上,选择 分析 > 价值流
  3. 过滤结果 文本框下方,选择 概览按类型的任务 图表显示在 总时间 图表下方。
  4. 要在任务类型之间切换,请选择 设置 下拉列表,然后选择 议题合并请求
  5. 要添加或删除标记,请选择 设置 下拉列表并选择或搜索标记。默认情况下,选择顶部组级别标记(最多 10 个)。您最多可以选择 15 个标记。