公開:2024年11月20日

2分で読めます

データドリブンのDevSecOps:GitLabインサイトダッシュボードのご紹介

主要なメトリクスの可視化、プロジェクトの進捗状況の追跡、カスタマイズ可能なデータドリブンビューを使ったチームの生産性の改善など、GitLabインサイトダッシュボードの活用方法について説明します。

メトリクスおよび分析は、生産性や品質を高め、成功を収める上で極めて重要な要素です。包括的なDevSecOpsプラットフォームであるGitLabでは、こういった重要なメトリクスを追跡・可視化するための強力なツールをインサイトダッシュボード上で提供しています。この記事では、ご利用の環境でのインサイトダッシュボードの使用方法についてご紹介します。

GitLabのメトリクスと分析ツールのご紹介

GitLabでは、DevSecOpsライフサイクルのさまざまな側面に対応したメトリクスおよび分析ツール群をご用意しています。

  1. 生産性分析:チームの開発速度、サイクルタイム、リードタイムを追跡します。
  2. コードレビュー分析:コード品質、テストカバレッジ、レビュー効率を測定します。
  3. CI/CD分析:パイプラインのパフォーマンスとデプロイ頻度をモニタリングします。
  4. バリューストリーム分析:アイデア出しから本番稼働までの作業の流れを可視化します。
  5. インサイト:プロジェクトやグループに関するデータを調べて可視化します。

開発プロセスに関する貴重なインサイトを得られるこれらのメトリクスを参考にして、ボトルネックの特定、ワークフローの最適化、データドリブンな意思決定を行えます。

特定のメトリクスへのラベルの活用

あまり目立たないものの、GitLabの特に強力な機能の1つがラベルです。ラベルを使うと、特定のメトリクスに絞り込んで、極めて正確に焦点を当てられます。イシューやマージリクエスト、エピックに戦略的にラベルを適用することで、プロジェクトのパフォーマンスや進捗について的確なインサイトを得られるカスタムビューを作成できます。

用途の広い識別子として機能するGitLabのラベルを使用すれば、作業アイテムを柔軟に分類・整理できます。機能開発やバグ修正、チーム固有のタスクなど、追跡対象が何であれ、ラベルを使用すれば、プロジェクトデータをスライスして、別の視点から分析して意味のあるパターンや傾向を特定することが可能です。この概念は、クラウドのデプロイにおいて、管理やコスト配分、運用上のインサイト取得をスムーズに行うためにタグを使用するのと似ています。

しっかりと考えながら作業アイテムにラベルを付けていくことで、カスタムダッシュボードやレポートの生成に活用できる高度なラベリングシステムが実質的に構築されます。このアプローチにより、チームや関係者にとって最も重要なメトリクスを重点的に取り上げられるとともに、プロジェクトの健全性と勢いに焦点を絞ってわかりやすく可視化できます。

GitLabインサイトの設定方法

GitLabインサイトを使用すると、プロジェクトやグループに関するデータを調べて可視化できます。特定の期間内に作成された、または完了したイシュー、マージリクエストのマージが完了するまでの平均時間、トリアージの健全性など、さまざまな側面に関する有用な分析情報を得られます。インサイトは、プロジェクトとグループのどちらにも設定できます。

インサイトの設定手順は次のとおりです。

  1. プロジェクトにインサイトを設定する場合:
    • プロジェクトのルートディレクトリ内に.gitlab/insights.ymlという名前のファイルを作成します。
  2. グループにインサイトを設定する場合:
    • グループに属するプロジェクト内に.gitlab/insights.ymlファイルを作成します。
    • グループの設定 > 一般の順に移動します。
    • 分析セクションを展開し、インサイトセクションを見つけます。
    • 設定ファイルが含まれるプロジェクトを選択し、変更を保存します。

.gitlab/insights.ymlは、レポート内のチャートの構造や順序に加え、表示されるチャートの形式を定義できるYAMLファイルです。各チャートの定義には、タイトル、説明、タイプ、データソースやフィルタリング条件を指定するクエリなどのパラメータを含められます。

インサイトを表示するには、プロジェクトまたはグループで分析 > インサイトの順に移動します。

デフォルトのインサイトダッシュボードの表示

マージリクエストインサイトのカスタマイズ

デフォルトビューでは有用な情報が未加工で表示されますが、インサイトダッシュボードをカスタマイズすれば、各マージリクエストの担当チームや、マージリクエストごとに解決された問題の種類など、より多くの情報が明らかになります。

スクワッドおよび要件タイプごとのマージリクエストインサイト

GitLabでスクワッドの生産性を測定するのは、難しい場合があります。GitLabのグループとサブグループの構造が、実際のスクワッドの構成と完全に一致していない場合は特に困難です。こういった課題に対処し、効果的にスクワッドの生産性を追跡する方法をご紹介します。

スクワッドベースのメトリクスの設定

  1. ラベルの作成:スクワッドごと(例:squad::alphasquad::beta)および要件タイプ(例:type::bugtype::featuretype::maintenance)ごとに範囲指定した一意のラベルを作成します。
  1. ラベルの適用:所属するプロジェクトやグループに関係なく、各スクワッドが対応するすべてのイシューおよびマージリクエストにこれらのスクワッドラベルを一貫して適用します。

ヒント

  • GitLab APIを使用すれば、既存のMR(未解決、マージ済み、完了したもの)に一括でラベルを適用できます。
  • GitLab CIパイプラインの一環としてラベルの追加や削除、更新を行えます。
  • GitLabトリアージボットを活用すれば、ラベルの適用プロセスを自動化できます。
  1. ダッシュボードの設定:プロジェクトのリポジトリに.gitlab/insights.ymlファイルを作成し、チームやタイプ固有のマージリクエストインサイト用のカスタムチャートを定義します。

## Default Merge Requests insights.yml 
mergeRequests:
  title: Merge requests dashboard
  charts:
    - title: Merge requests merged per week 
      type: bar
      query:
        data_source: issuables
        params:
          issuable_type: merge_request
          issuable_state: merged
          group_by: week
          period_limit: 12
    - title: Merge requests merged per month
      type: bar
      query:
        data_source: issuables
        params:
          issuable_type: merge_request
          issuable_state: merged
          group_by: month
          period_limit: 3

## Per-teams Merge Requests insights.yml
mergeRequestsTeams:
  title: Merge requests dashboard per teams
  charts:
    - title: Merge requests merged per week 
      type: stacked-bar
      query:
        data_source: issuables
        params:
          issuable_type: merge_request
          issuable_state: merged
          group_by: week
          period_limit: 12
          collection_labels:
            - squad::alpha
            - squad::beta
    - title: Merge requests merged per month
      type: stacked-bar
      query:
        data_source: issuables
        params:
          issuable_type: merge_request
          issuable_state: merged
          group_by: month
          period_limit: 3
          collection_labels:
            - squad::alpha
            - squad::beta

## Per-teams and Type Merge Requests insights.yml
mergeRequestsTeamsAndType:
  title: Per Teams and Type - Merge requests dashboard
  charts:
    - title: Merge requests merged per week - Squad Alpha
      type: stacked-bar
      query:
        data_source: issuables
        params:
          issuable_type: merge_request
          issuable_state: merged
          filter_labels: squad::alpha
          collection_labels:
            - type::feature
            - type::bug
            - type::maintenance
          group_by: week
          period_limit: 12
    - title: Merge requests merged per month - Squad Alpha
      type: stacked-bar
      query:
        data_source: issuables
        params:
          issuable_type: merge_request
          issuable_state: merged
          filter_labels: squad::alpha
          collection_labels:
            - type::feature
            - type::bug
            - type::maintenance
          group_by: month
          period_limit: 3
    - title: Merge requests merged per week - Squad Beta
      type: stacked-bar
      query:
        data_source: issuables
        params:
          issuable_type: merge_request
          issuable_state: merged
          filter_labels: squad::beta
          collection_labels:
            - type::feature
            - type::bug
            - type::maintenance
          group_by: week
          period_limit: 12
    - title: Merge requests merged per month - Squad Beta
      type: stacked-bar
      query:
        data_source: issuables
        params:
          issuable_type: merge_request
          issuable_state: merged
          filter_labels: squad::beta
          collection_labels:
            - type::feature
            - type::bug
            - type::maintenance
          group_by: month
          period_limit: 3

このようにカスタマイズすることで、チームおよび要件タイプごとのマージリクエストアクティビティがわかりやく表示される、役に立つ情報満載のダッシュボードを作成できます。それをもとに、長期的なトレンドの可視化、各スクワッドのパフォーマンスの比較、スクワット単位での作業タイプの分布の分析を行えます。

チームおよび要件タイプごとにMRアクティビティが表示されているダッシュボード

各スクワッドのパフォーマンスが比較されているダッシュボード

無料トライアルで今すぐスタート!

GitLabには、GitLabインサイト以外にも、メトリクスおよび分析関連のツールや機能が多数あります。ぜひ以下のバリューストリーム管理製品ツアーで、バリューストリーム分析やCI/CD分析、コードレビューメトリクスなど、GitLabの強力な分析機能の全容をご確認ください。

バリューストリーム管理製品ツアー

カスタムメトリクスの作成を始める準備ができたら、今すぐGitLab Ultimateの60日間無料トライアルにご登録ください。データドリブンのDevSecOpsを最大限に活用しましょう。

関連リンク

ご意見をお寄せください

このブログ記事を楽しんでいただけましたか?ご質問やフィードバックがあればお知らせください。GitLabコミュニティフォーラムで新しいトピックを作成して、ご意見をお聞かせください。

フォーチュン100企業の50%以上がGitLabを信頼

より優れたソフトウェアをより速く提供

インテリジェントなDevSecOpsプラットフォームで

チームの可能性を広げましょう。