洞察

  • Tier: 旗舰版
  • Offering: JihuLab.com,私有化部署

极狐GitLab 洞察是交互式柱状图,显示每月创建的项目(例如,创建的 bug)数量。

配置洞察并为您的项目和群组创建自定义报告,以便探索以下数据:

  • 在指定时间段内创建和关闭的议题。
  • 合并请求的平均合并时间。
  • 分诊卫生。

查看洞察#

前提条件:

  • 对于项目洞察,您必须有权访问项目,并有权限查看有关其合并请求和议题的信息。
  • 对于群组洞察,您必须有权限查看该群组。

要查看项目或群组的洞察:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目或群组。
  2. 选择 分析 >洞察
  3. 要查看报告,请从 选择报告 下拉列表中选择您想要查看的报告。

您可以使用深层链接 URL 指引用户到 洞察中的特定报告。

要创建深层链接,请将报告键附加到 洞察报告 URL 的末尾。 例如,具有键 bugsCharts 的极狐GitLab 报告的深层链接 URL 为 https://jihulab.com/gitlab-cn/gitlab/insights/#/bugsCharts

与 洞察图表交互#

您可以与 洞察图表交互,以查看有关您群组活动的详细信息。

显示不同的报告#

要在 洞察页面上显示其中一个可用报告:

  • 选择报告 下拉列表中,选择您想要显示的报告。

查看柱状图注释#

要查看注释:

  • 将鼠标悬停在图表中的每个柱上。

放大图表#

Insights 显示过去 90 天的数据。您可以放大以仅显示 90 天范围内的子集数据。

为此,请选择暂停图标 (

) 并沿水平轴滑动它们:

  • 要更改开始日期,请将左侧暂停图标向左或向右滑动。
  • 要更改结束日期,请将右侧暂停图标向左或向右滑动。

从图表中排除维度#

默认情况下,Insights 在图表上显示所有可用维度。

要排除某个维度,请从图表下方的图例中选择该维度的名称。

深入查看图表#

History
    • 引入于极狐GitLab 16.7。
    • 在极狐GitLab 16.9 中更改为扩展支持所有 issuables 图表。

您可以深入查看所有 query.data_sourceissuables 的图表的数据。

要查看特定优先级或严重性在某个月的数据的详细报告:

  • 在图表上,选择您要深入查看的柱状堆叠。

配置项目洞察#

前提条件:

  • 根据项目配置,您必须至少拥有开发者角色。

项目 洞察通过项目中的 .gitlab/insights.yml 文件进行配置。如果项目没有配置文件,它将使用 群组配置

.gitlab/insights.yml 文件是一个 YAML 文件,您可以在其中定义:

  • 报告中图表的结构和顺序。
  • 您的项目或群组报告中显示的图表样式。

要配置项目洞察,请创建一个文件 .gitlab/insights.yml,可以:

  • 在本地,在项目的根目录中创建文件,并推送您的更改。
  • 从 UI 创建:
    1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
    2. 在文件列表上方,选择您要提交的分支,选择加号图标,然后选择 新文件
    3. 文件名 文本框中,输入 .gitlab/insights.yml
    4. 在大文本框中,更新文件内容。
    5. 选择 提交更改

创建配置文件后,您还可以将其用于项目的群组。

配置群组洞察#

极狐GitLab 从默认配置文件中读取洞察。

要配置群组洞察:

  1. 在属于您群组的项目中,创建一个 .gitlab/insights.yml 文件
  2. 在左侧边栏中,选择 搜索或转到 并找到您的群组。
  3. 选择 设置 > 分析
  4. Insights 部分,选择包含您 .gitlab/insights.yml 配置文件的项目。
  5. 选择 保存更改

洞察配置文件#

.gitlab/insights.yml 文件中:

  • 配置参数 定义图表行为。
  • 每个报告都有一个唯一的键和一组图表用于获取和显示。
  • 每个图表定义由一个由键值对组成的哈希组成。

以下示例显示了一个包含一个图表的单个定义。

yaml
1bugsCharts: 2 title: "Charts for bugs" 3 charts: 4 - title: "Monthly bugs created" 5 description: "Open bugs created per month" 6 type: bar 7 query: 8 data_source: issuables 9 params: 10 issuable_type: issue 11 issuable_state: opened 12 filter_labels: 13 - bug 14 group_by: month 15 period_limit: 24

洞察配置参数#

下表列出了图表参数:

关键词描述
title图表的标题。此标题显示在 洞察页面上。
description单个图表的描述。此描述显示在相关图表上方。
type图表的类型:barlinestacked-bar
query定义图表数据源和过滤条件的哈希。

title#

使用 title 更新图表标题。标题显示在 洞察报告上。

示例:

yaml
monthlyBugsCreated: title: "Monthly bugs created"

description#

使用 description 添加图表的描述。描述显示在图表上方、标题下方。

示例:

yaml
monthlyBugsCreated: title: "Monthly bugs created" description: "Open bugs created per month"

type#

使用 type 定义图表类型。

支持的值:

名称示例:
barInsights example bar chart
bar (时间序列使用 group_by)Insights example bar time series chart
lineInsights example stacked bar chart
stacked-barInsights example stacked bar chart

dora 数据源支持 barline 图表类型

示例:

yaml
monthlyBugsCreated: title: "Monthly bugs created" type: bar

query#

使用 query 定义图表的数据源和过滤条件。

示例:

yaml
1monthlyBugsCreated: 2 title: "Monthly bugs created" 3 description: "Open bugs created per month" 4 type: bar 5 query: 6 data_source: issuables 7 params: 8 issuable_type: issue 9 issuable_state: opened 10 filter_labels: 11 - bug 12 collection_labels: 13 - S1 14 - S2 15 - S3 16 - S4 17 group_by: week 18 period_limit: 104

不带 data_source 参数的旧格式仍然受支持:

yaml
1monthlyBugsCreated: 2 title: "Monthly bugs created" 3 description: "Open bugs created per month" 4 type: bar 5 query: 6 issuable_type: issue 7 issuable_state: opened 8 filter_labels: 9 - bug 10 collection_labels: 11 - S1 12 - S2 13 - S3 14 - S4 15 group_by: week 16 period_limit: 104

query.data_source#

History
    • 引入于极狐GitLab 15.3。

使用 data_source 定义公开数据的数据源。

支持的值:

  • issuables: 公开合并请求或议题数据。
  • dora: 公开 DORA 指标。

issuable 查询参数#

query.params.issuable_type#

使用 query.params.issuable_type 定义要为其创建图表的 issuable 类型。

支持的值:

  • issue: 图表显示议题的数据。
  • merge_request: 图表显示合并请求的数据。
query.params.issuable_state#

使用 query.params.issuable_state 按当前状态过滤查询的 issuable。

默认情况下,应用 opened 状态过滤器。

支持的值:

  • opened: 打开的议题或合并请求。
  • closed: 关闭的议题或合并请求。
  • locked: 讨论被锁定的议题或合并请求。
  • merged: 已合并的合并请求。
  • all: 所有状态的议题或合并请求。
query.params.filter_labels#

使用 query.params.filter_labels 按应用于查询的 issuable 的标签进行过滤。

默认情况下,不应用标签过滤器。所有定义的标签必须应用于 issuable,才能被选中。

示例:

yaml
1monthlyBugsCreated: 2 title: "Monthly regressions created" 3 type: bar 4 query: 5 data_source: issuables 6 params: 7 issuable_type: issue 8 issuable_state: opened 9 filter_labels: 10 - bug 11 - regression
query.params.collection_labels#

使用 query.params.collection_labels 根据配置的标签对 issuables 进行分组。默认情况下不应用分组。

示例:

yaml
1weeklyBugsBySeverity: 2 title: "Weekly bugs by severity" 3 type: stacked-bar 4 query: 5 data_source: issuables 6 params: 7 issuable_type: issue 8 issuable_state: opened 9 filter_labels: 10 - bug 11 collection_labels: 12 - S1 13 - S2 14 - S3 15 - S4
query.group_by#

使用 query.group_by 定义图表的 X 轴。

支持的值:

  • day: 按天分组数据。
  • week: 按周分组数据。
  • month: 按月分组数据。
query.period_limit#

使用 query.period_limit 定义根据 query.period_field 查询 issuables 的时间范围。

单位与您在 query.group_by 中定义的值相关。例如,如果您定义了 query.group_by: 'day',并且 query.period_limit: 365,则图表显示过去 365 天的数据。

默认情况下,根据您定义的 query.group_by 应用默认值。

query.group_by默认值
day30
week4
month12

query.period_field#

使用 query.period_field 定义按其分组 issuables 的时间戳字段。

支持的值:

  • created_at (默认): 使用 created_at 字段分组数据。
  • closed_at: 使用 closed_at 字段分组数据(仅适用于议题)。
  • merged_at: 使用 merged_at 字段分组数据(仅适用于合并请求)。

period_field 自动设置为:

  • 如果 query.issuable_stateclosed,则为 closed_at
  • 如果 query.issuable_statemerged,则为 merged_at
  • 否则为 created_at

DORA 查询参数#

History
    • 引入于极狐GitLab 15.3。

使用 DORA 特定查询与 dora 数据源创建 DORA 图表定义。

示例:

yaml
1dora: 2 title: "DORA charts" 3 charts: 4 - title: "DORA deployment frequency" 5 type: bar # or line 6 query: 7 data_source: dora 8 params: 9 metric: deployment_frequency 10 group_by: day 11 period_limit: 10 12 projects: 13 only: 14 - 38 15 - title: "DORA lead time for changes" 16 description: "DORA lead time for changes" 17 type: bar 18 query: 19 data_source: dora 20 params: 21 metric: lead_time_for_changes 22 group_by: day 23 environment_tiers: 24 - staging 25 period_limit: 30
query.metric#

使用 query.metric 定义要查询的 DORA 指标

支持的值:

  • deployment_frequency (默认)
  • lead_time_for_changes
  • time_to_restore_service
  • change_failure_rate
query.group_by#

使用 query.group_by 定义图表的 X 轴。

支持的值:

  • day (默认): 按天分组数据。
  • month: 按月分组数据。
query.period_limit#

使用 query.period_limit 定义过去查询指标的时间范围(默认:15)。最大期限为 180 天或 6 个月。

query.environment_tiers#

使用 query.environment_tiers 定义一个环境数组,以便在计算中包括。

支持的值:

  • production(默认)
  • staging
  • testing
  • development
  • other

projects#

使用 projects 限制查询 issuables 的来源:

  • 如果 .gitlab/insights.yml 用于群组的洞察,请使用 projects 定义要查询 issuables 的项目。默认情况下,使用群组下的所有项目。
  • 如果 .gitlab/insights.yml 用于项目的洞察,指定其他项目不会产生结果。默认情况下,使用项目。

projects.only#

使用 projects.only 指定查询 issuables 的项目。

当满足以下条件时,参数中列出的项目将被忽略:

  • 它们不存在。
  • 当前用户没有足够的权限读取它们。
  • 它们在群组之外。

示例:

yaml
1monthlyBugsCreated: 2 title: "Monthly bugs created" 3 description: "Open bugs created per month" 4 type: bar 5 query: 6 data_source: issuables 7 params: 8 issuable_type: issue 9 issuable_state: opened 10 filter_labels: 11 - bug 12 projects: 13 only: 14 - 3 # 您可以使用项目 ID 15 - groupA/projectA # 或完整的项目路径 16 - groupA/subgroupB/projectC # 可以包含子群组中的项目 17 - groupB/project # 群组外的项目将被忽略

完整的 洞察配置示例#

yaml
1.projectsOnly: &projectsOnly 2 projects: 3 only: 4 - 3 5 - groupA/projectA 6 - groupA/subgroupB/projectC 7 8bugsCharts: 9 title: "Charts for bugs" 10 charts: 11 - title: "Monthly bugs created" 12 description: "Open bugs created per month" 13 type: bar 14 <<: *projectsOnly 15 query: 16 data_source: issuables 17 params: 18 issuable_type: issue 19 issuable_state: opened 20 filter_labels: 21 - bug 22 group_by: month 23 period_limit: 24 24 25 - title: "Weekly bugs by severity" 26 type: stacked-bar 27 <<: *projectsOnly 28 query: 29 data_source: issuables 30 params: 31 issuable_type: issue 32 issuable_state: opened 33 filter_labels: 34 - bug 35 collection_labels: 36 - S1 37 - S2 38 - S3 39 - S4 40 group_by: week 41 period_limit: 104 42 43 - title: "Monthly bugs by team" 44 type: line 45 <<: *projectsOnly 46 query: 47 data_source: issuables 48 params: 49 issuable_type: merge_request 50 issuable_state: opened 51 filter_labels: 52 - bug 53 collection_labels: 54 - Manage 55 - Plan 56 - Create 57 group_by: month 58 period_limit: 24