プロジェクトのインサイト

プロジェクトのインサイトを設定して、次のようなデータを調査します:

  • 指定された期間に作成およびクローズされたイシュー。
  • マージリクエストがマージされるまでの平均時間。
  • トリアージ衛生。

グループ向けのインサイトもあります。

プロジェクトのインサイトを見る

前提条件:

  • 必須
    • マージリクエストやイシューに関する情報を表示するためのプロジェクトへのアクセス権。
    • プロジェクト内の機密のマージリクエストやイシューを閲覧する権限。

プロジェクトインサイトの閲覧:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 分析 > インサイトを選択します。
  3. レポートを表示するには、[レポートを選択]ドロップダウンリストを選択します。

ディープリンク URL を使用して、インサイトの特定のレポートにユーザーを誘導できます。

ディープリンクを作成するには、インサイトのレポート URL の末尾にレポートキーを追加します。例えば、bugsCharts というキーの GitLab レポートには、ディープリンク URLhttps://gitlab.com/gitlab-org/gitlab/insights/#/bugsCharts があります。

プロジェクトインサイトの設定

前提条件:

  • プロジェクトの設定によっては、少なくとも開発者ロールを持っている必要があります。

プロジェクトのインサイトは、プロジェクト内の.gitlab/insights.yml ファイルで設定されます。プロジェクトに設定ファイルがない場合は、グループ設定を使用します。

.gitlab/insights.yml ファイルは定義する YAML ファイルです:

  • レポート内のチャートの構造と順序。
  • プロジェクトやグループのレポートに表示されるチャートのスタイル。

プロジェクトのインサイトを設定するには、以下のいずれかを実行します:

  • プロジェクトのルートディレクトリに.gitlab/insights.yml ファイルを作成し、変更をプッシュします。
  • UIに.gitlab/insights.yml
    1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
    2. ファイルリストの上で、コミットしたいブランチを選択し、プラスアイコンを選択し、新規ファイルを選択します。
    3. ファイル名テキストボックスに.gitlab/insights.yml と入力します。
    4. 大きなテキストボックスに、ファイルの内容を更新します。
    5. 変更をコミット を選択します。

設定ファイルを作成したら、プロジェクトのグループにも使用できます。

インサイト設定ファイル

.gitlab/insights.yml

  • 設定パラメータはChartの動作を定義します。
  • 各レポートには、一意のキーと、フェッチして表示するChartのコレクションがあります。
  • 各チャート定義は、キーと値のペアで構成されるハッシュでできています。

以下の例は、1つのレポートを1つのChartで表示する1つの定義を示しています。

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

インサイト設定パラメータ

次の表は、Chart パラメーターの一覧です:

キーワード説明
titleChartのタイトル。インサイトページに表示されます。
description個々のチャートの説明。チャートの上に表示されます。
typeチャートの種類:bar line またはstacked-bar
queryチャートのデータソースとフィルタリング条件を定義するハッシュ。

title

title を使用して、Chart のタイトルを更新します。タイトルはインサイト・レポートに表示されます。

monthlyBugsCreated:
  title: "Monthly bugs created"

description

description を使用して、Chart の説明を追加します。説明は、Chartの上、タイトルの下に表示されます。

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チャート・タイプをサポートしています。

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 を使って、データを公開するデータソースを定義します。

サポートされている値

  • issuables:マージ・リクエストまたはイシュー・データを公開します。
  • dora:DORAメトリクスを公開します。

issuable クエリパラメータ

query.params.issuable_type

query.params.issuable_type を使用して、チャートを作成する発行可能銘柄のタイプを定義します。

サポートされている値

  • 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 を使用して、設定されたラベルで発行可能ファイルをグループ化します。グループ化はデフォルトでは適用されません。

このパラメータを使用する場合は、typeline またはstacked-bar に設定する必要があります。

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 を使用して、Chart の X 軸を定義します。

サポートされている値

  • day:1日あたりのグループデータ。
  • week:週ごとのグループデータ。
  • month:月ごとのグループデータ。
query.period_limit

query.period_limit を使用して、issueables のクエリ(query.period_field を使用)を実行する期間を定義します。

単位はquery.group_by で定義した値に関連します。例えば、query.group_by: 'day'query.period_limit: 365 を定義した場合、Chart は過去 365 日分のデータを表示します。

デフォルトでは、定義したquery.group_by に応じてデフォルト値が適用されます。

query.group_byデフォルト値
day30
week4
month12

query.period_field

query.period_field を使って、発行可能ファイルをグループ化するタイムスタンプフィールドを定義します。

サポートされている値

  • created_at (デフォルト): created_atフィールドをcreated_at 使用してデータをグループ created_at化します。
  • closed_at: closed_atフィールドをclosed_at使用してデータをグループ化 closed_atします(イシューのみ)。
  • merged_at: merged_atフィールドを使用したmerged_atグループデータ merged_at(マージリクエストのみ)。

period_field が自動的に設定されます:

  • closed_at もしquery.issuable_stateclosed
  • merged_at もしquery.issuable_statemerged
  • created_at そうでなければ
note
このバグが解決されるまで、merged_at の代わりにcreated_at が表示されることがあります。代わりにcreated_at が使用されます。

DORA クエリパラメータ

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 を使用して、Chart の X 軸を定義します。

サポートされている値

  • day (デフォルト):1日あたりのグループデータ。
  • 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