洞察

为您的群组和项目配置洞察来浏览数据,诸如:

  • 在特定时期创建和关闭的议题。
  • 合并请求被合并的平均时间。
  • Triage 规范

您还可以创建与您的群组相关的自定义洞察报告。

查看洞察

先决条件:

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

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

  1. 在左侧导航栏,选择 搜索或前往 并找到您的项目和群组。
  2. 选择 分支 > 洞察
  3. 要查看报告,选择 选择报告 下拉列表。

使用深度链接(deep link)访问洞察报告

您可以使用深度链接的 URL 来让用户直接访问指定的洞察报告。

要创建深度链接,在洞察报告 URL 后面附加上报告键值。比如,一个具有 bugsCharts 键的极狐GitLab 报告具有深度链接 URL https://gitlab.com/gitlab-org/gitlab/insights/#/bugsCharts

和洞察图标交互

您可以和洞察图标交互来查看群组活动的详情。

展示不同的报告

要在洞察页面上展示可用的报告,从 选择报告 下拉列表,选择您想展示的报告。

查看柱状图注释

要查看注释,在每个图标上悬停鼠标。

权限

如果您有权限查看项目,则您有权限查看项目的洞察。

note 您无权访问的议题或合并请求(因为您无权访问它们所属的项目,或者因为它们是私密的)将从洞察图表中过滤掉。

在图表上放大

洞察会展示过去 90 天的数据。您可以放大以仅显示 90 天范围内某一子集的数据。

要这么做的话,选择暂停图标( )并拖动它们沿水平轴:

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

从图标中排出维度

默认情况下,洞察会展示图标中可用的所有维度。

要想排除某个维度,在传统图标的下方,选择想要排除的维度名称。

深入查看图表

  • 引入于极狐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. 洞察 部分,选择包含 .gitlab/insights.yml 配置文件的项目。
  5. 选择 保存变更

洞察文件配置

.gitlab/insights.yml 文件中:

  • 配置参数定义了图表行为。
  • 每个报告都有独一无二的键值,并有一系列拉取并展示的图表。
  • 每个图表定义都由一个由键值对组成的哈希表构成。

以下示例展示了一个单个图表的单个报告所具有的定义:

bugsCharts:
  title: "Charts for bugs"
  charts:
    - title: "Monthly bugs created"
      description: "Open bugs created per month"
      type: bar
      query:
        data_source: issuables
        params:
          issuable_type: issue
          issuable_state: opened
          filter_labels:
            - bug
          group_by: month
          period_limit: 24

洞察配置参数

以下表格列举出了图标参数:

关键字 描述
title 图标的主题。这会展示在洞察页面上。
description 单个图标的描述。这会展示在相关图标的上方。
type 图标的类型: barline 或者 stacked-bar
query 定义图标数据源和过滤器条件的哈希值。

title

使用 title 来更新图标标题。标题会展示在洞察报告上。

比如::

monthlyBugsCreated:
  title: "Monthly bugs created"

description

使用 description 来在图标中增加描述。描述展示在图标上方,主题下方。

比如::

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

type

使用 type 来定义图标类型。

支持的值:

名称 示例:
bar 洞察示例柱状图
bar (时间序列,当使用 group_by 时) 洞察示例柱状时间序列图
line 洞察示例堆积柱状图
stacked-bar 洞察示例堆积柱状图

dora 数据源支持 barline 图标类型

比如::

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

query

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

比如::

monthlyBugsCreated:
  title: "Monthly bugs created"
  description: "Open bugs created per month"
  type: bar
  query:
    data_source: issuables
    params:
      issuable_type: issue
      issuable_state: opened
      filter_labels:
        - bug
      collection_labels:
        - S1
        - S2
        - S3
        - S4
      group_by: week
      period_limit: 104

没有 data_source 参数的传统格式依旧受支持:

monthlyBugsCreated:
  title: "Monthly bugs created"
  description: "Open bugs created per month"
  type: bar
  query:
    issuable_type: issue
    issuable_state: opened
    filter_labels:
      - bug
    collection_labels:
      - S1
      - S2
      - S3
      - S4
    group_by: week
    period_limit: 104

query.data_source

  • 引入于极狐GitLab 15.3。

使用 data_source 来定义可以暴露数据的数据源。

Supported values:

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

issuable query parameters

query.params.issuable_type

使用 query.params.issuable_type 来定义要为其创建图表的待办事项类型。

Supported values:

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

使用 query.params.issuable_state 根据所查询待办事项的当前状态进行筛选。

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

支持的值:

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

使用 query.params.filter_labels 依据应用于所查询待办事项的标签进行筛选。

默认情况下,没有应用任何标签过滤器。所有已定义的标签都必须应用到待办事项上,该待办事项才会被选中。

比如::

monthlyBugsCreated:
  title: "Monthly regressions created"
  type: bar
  query:
    data_source: issuables
    params:
      issuable_type: issue
      issuable_state: opened
      filter_labels:
        - bug
        - regression
query.params.collection_labels

使用 query.params.collection_labels 按已配置的标签对待办事项进行分组。

默认情况下不应用分组。

比如::

weeklyBugsBySeverity:
  title: "Weekly bugs by severity"
  type: stacked-bar
  query:
    data_source: issuables
    params:
      issuable_type: issue
      issuable_state: opened
      filter_labels:
        - bug
      collection_labels:
        - S1
        - S2
        - S3
        - S4
query.group_by

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

支持的值:

  • day:群组每天的数据。
  • week:群组每周的数据。
  • month:群组每个月的数据。
query.period_limit

使用 query.period_limit 来定义查询待办事项的时间回溯范围(使用 query.period_field)。

此单元和定义在 query.group_by 中的值相关。比如,如果您定义了 query.group_by: 'day'query.period_limit: 365,则图表显示过去 365 天的数据。

默认情况下,默认值的应用取决于您定义的 query.group_by 值。

query.group_by 默认值
day 30
week 4
month 12

query.period_field

使用 query.period_field 来定义用于对待办事项进行分组的时间戳字段。

支持的值:

  • created_at (默认):使用 created_at 字段的群组数据。
  • closed_at:使用 closed_at 字段的群组数据(仅针对议题)。
  • merged_at:使用 merged_at 字段的群组数据(仅针对合并请求)。

period_field 自动设置为:

  • closed_at 如果 query.issuable_stateclosed
  • merged_at 如果 query.issuable_statemerged
  • created_at 其他情况

DORA query parameters

  • 引入于极狐GitLab 15.3。

使用具有 dora 数据源的 DORA 特定查询来创建 DORA 图表定义。

比如:

dora:
  title: "DORA charts"
  charts:
    - title: "DORA deployment frequency"
      type: bar # or line
      query:
        data_source: dora
        params:
          metric: deployment_frequency
          group_by: day
          period_limit: 10
      projects:
        only:
          - 38
    - title: "DORA lead time for changes"
      description: "DORA lead time for changes"
      type: bar
      query:
        data_source: dora
        params:
          metric: lead_time_for_changes
          group_by: day
          environment_tiers:
            - staging
          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 来限制查询待办事项的查询:

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

projects.only

使用 projects.only 来指定查询待办事项的项目。

当发生如下情况时,此参数中列出的项目会被忽略:

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

例如:

monthlyBugsCreated:
  title: "Monthly bugs created"
  description: "Open bugs created per month"
  type: bar
  query:
    data_source: issuables
    params:
      issuable_type: issue
      issuable_state: opened
      filter_labels:
        - bug
  projects:
    only:
      - 3                         # You can use the project ID
      - groupA/projectA           # Or full project path
      - groupA/subgroupB/projectC # Projects in subgroups can be included
      - groupB/project            # Projects outside the group will be ignored

完整的洞察配置示例

.projectsOnly: &projectsOnly
  projects:
    only:
      - 3
      - groupA/projectA
      - groupA/subgroupB/projectC

bugsCharts:
  title: "Charts for bugs"
  charts:
    - title: "Monthly bugs created"
      description: "Open bugs created per month"
      type: bar
      <<: *projectsOnly
      query:
        data_source: issuables
        params:
          issuable_type: issue
          issuable_state: opened
          filter_labels:
            - bug
          group_by: month
          period_limit: 24

    - title: "Weekly bugs by severity"
      type: stacked-bar
      <<: *projectsOnly
      query:
        data_source: issuables
        params:
          issuable_type: issue
          issuable_state: opened
          filter_labels:
            - bug
          collection_labels:
            - S1
            - S2
            - S3
            - S4
          group_by: week
          period_limit: 104

    - title: "Monthly bugs by team"
      type: line
      <<: *projectsOnly
      query:
        data_source: issuables
        params:
          issuable_type: merge_request
          issuable_state: opened
          filter_labels:
            - bug
          collection_labels:
            - Manage
            - Plan
            - Create
          group_by: month
          period_limit: 24