インサイト
GitLab Ultimate12.0から導入されました。
プロジェクトにとって重要なインサイトを設定し、トリアージ衛生、一定期間内に作成/クローズされたイシュー、マージリクエストの平均マージ時間などのデータを調査します。
プロジェクトのインサイトを見る
左サイドバーの「Analytics > Insights」リンクをクリックすると、プロジェクトのインサイトにアクセスできます:
インサイトの設定
インサイトはプロジェクト内の.gitlab/insights.yml
という YAML ファイルを使って設定します。このファイルはプロジェクトのインサイトページで使われます。
このファイルの内容については、後述のWriting your.gitlab/insights.yml
を参照してください。
権限
プロジェクトのインサイトを見ることができます。
グループ権限表も参照してください。
書き方.gitlab/insights.yml
.gitlab/insights.yml
ファイルは、プロジェクトまたはグループの各インサイトページに表示されるインサイト チャートの構造と順序を定義します。
各ページには、一意のキーと、フェッチして表示するChartのコレクションがあります。
例えば、1ページに1つのChartを表示するInsightsの定義です:
bugsCharts:
title: "Charts for bugs"
charts:
- title: "Monthly bugs created"
description: "Open bugs created per month"
type: bar
query:
issuable_type: issue
issuable_state: opened
filter_labels:
- bug
group_by: month
period_limit: 24
各チャート定義は、キーと値のペアで構成されるハッシュでできています。
例えば、シングルチャートの定義です:
- title: "Monthly bugs created"
description: "Open bugs created per month"
type: bar
query:
issuable_type: issue
issuable_state: opened
filter_labels:
- bug
group_by: month
period_limit: 24
設定パラメータ
Chartは、Chartの動作を定義するパラメータのリストとして定義されます。
次の表は、Chartで使用可能なパラメータの一覧です:
キーワード | 説明 |
---|---|
title
| Chartのタイトル。 Insightsページに表示されます。 |
description
| 各チャートの説明。 該当するチャートの上に表示されます。 |
type
| Chartの種類:bar ,line またはstacked-bar .
|
query
| イシュー/マージリクエストがChartの一部となるための条件を定義するハッシュです。 |
パラメータの詳細
インサイトチャートの設定に使用するパラメータについて、以下に詳しく説明します。
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
はChart Typeです。
使用例:
monthlyBugsCreated:
title: "Monthly bugs created"
type: bar
サポートされている値は以下の通りです:
名称 | 例 |
---|---|
bar
| ![]() |
bar (時系列、すなわちgroup_by を使用した場合)。
| ![]() |
line
| ![]() |
stacked-bar
| ![]() |
query
query
では、イシュー/マージリクエストをチャートの一部にするための条件を定義できます。
使用例:
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.issuable_type
Chartを作成したい「発行可能」のタイプを定義します。
サポートされている値は以下の通りです:
-
issue
チャートはイシューのデータを表示します。 -
merge_request
: チャートはマージリクエストのデータを表示します。
query.issuable_state
クエリされた「発行可能」の状態でフィルタリングします。
デフォルトでは、opened
状態フィルタが適用されます。
サポートされている値は以下の通りです:
-
opened
: 未解決のイシュー / マージリクエスト。 -
closed
: Closed 未解決のイシュー / マージリクエスト。 -
locked
: ディスカッションがロックされたイシュー/マージリクエスト。 -
merged
マージリクエストをマージしました。 -
all
: 全州のイシュー/マージリクエスト
query.filter_labels
クエリされた “issueable “に適用されるラベルでフィルタリングします。
デフォルトでは、ラベルフィルターは適用されません。 発行可能」を選択するためには、定義されたラベルがすべて適用されている必要があります。
使用例:
monthlyBugsCreated:
title: "Monthly regressions created"
type: bar
query:
issuable_type: issue
issuable_state: opened
filter_labels:
- bug
- regression
query.collection_labels
設定されたラベルによる「発行可能」グループ。
デフォルトでは、グループ化は行われません。 このキーワードを使用する場合は、type
をline
またはstacked-bar
のいずれかに設定する必要があります。
使用例:
weeklyBugsBySeverity:
title: "Weekly bugs by severity"
type: stacked-bar
query:
issuable_type: issue
issuable_state: opened
filter_labels:
- bug
collection_labels:
- S1
- S2
- S3
- S4
query.group_by
ChartのX軸を定義します。
サポートされている値は以下の通りです:
-
day
1日あたりのグループデータ。 -
week
週ごとのグループデータ。 -
month
1ヶ月あたりのグループデータ。
query.period_limit
発行可能物」がどこまで過去にクエリされるかを定義します。
単位は定義した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
issables “のグループに使用されるタイムスタンプフィールドを定義します。
サポートされている値は以下の通りです:
-
created_at
(デフォルト):created_at
フィールドをcreated_at
使用してデータをcreated_at
グループ化します。 -
closed_at
:closed_at
フィールドをclosed_at
使用したclosed_at
グループclosed_at
データclosed_at
(イシューのみ)。 - フィールドを
merged_at
使用したmerged_at
グループmerged_at
データmerged_at
(マージリクエストのみ)。
period_field
は自動的に設定されます:
-
closed_at
もしquery.issuable_state
がclosed
-
merged_at
もしquery.issuable_state
がmerged
-
created_at
その他
projects
GitLab Ultimate12.4で導入されました。
issueables」のクエリ元を制限することができます:
-
.gitlab/insights.yml
がグループのインサイトに使用されている場合、projects
を使用すると、クエリするプロジェク トを制限することができます。デフォルトでは、グループ配下のすべてのプロジェクトが使用されます。 - プロジェクトのインサイトに
.gitlab/insights.yml
を使用した場合、他のプロジェクトを指定しても結果は得られません。 デフォルトでは、プロジェクトそのものが使用されます。
projects.only
projects.only
オプションは、「issueables」をクエリするプロジェクトを指定します。
ここに記載されているプロジェクトは、以下の場合には無視されます:
- 存在しません。
- 現在のユーザーには、それらを読むのに十分な権限がありません。
- 彼らはグループの外にいます。
次のinsights.yml
の例では、クエリが使用されるプロジェクトを指定しています。 この例は、グループのインサイトを設定するときに便利です:
monthlyBugsCreated:
title: "Monthly bugs created"
description: "Open bugs created per month"
type: bar
query:
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:
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:
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:
issuable_type: merge_request
issuable_state: opened
filter_labels:
- bug
collection_labels:
- Manage
- Plan
- Create
group_by: month
period_limit: 24