2024.04.09

GitLab機能紹介 #9「アナライズ機能」

佐藤梨花
SB C&S株式会社 テクニカルマーケティングセンター
このエントリーをはてなブックマークに追加

こんにちは。SB C&Sの佐藤です。

本連載では開発サイクル全体を管理出来るプラットフォームである「GitLab」で使用される主な機能について解説していきます。

GitLabについてご存知ない、もしくは名前は知っているけれど具体的にどんな機能があるか気になる、そんな方におすすめの連載となっております。

9回目は「アナライズ機能」について解説します。

※アナライズ機能各画面について、データが少ない状態で表示しております。そのため項目やUIの参考としてご覧ください。

アナライズ機能

GitLabでは他のGitツールよりも「チームで開発を行う」という点を重要視しているため、生産性を最大化するため、プロジェクトの状況やGitLabの使用状況を可視化するツールや機能が多数用意されています。これらを活用することでプロジェクトの現状を正しく判断し、問題点の解決やより良くするための改善サイクルを回すことが可能です。

また可視化も全体像だけでなく、

  • インスタンス
  • グループ
  • プロジェクト

といったように、様々な角度で分析を行うことが可能になっています。そのためより詳細な情報から状況を判断することが可能です。

こういった機能は1社での開発でも有効ですが、「状況がデータから正確に判断できる」ため、状況判断が困難な「複数社が合同で開発している場合」や、「拠点がバラバラの状態で開発をしている場合」にも力を発揮します。

そのため小規模開発での活用はもちろん、中~大規模開発でしっかりこのような機能を活用することで、規模が大きくなるにつれて難しくなる「開発の質をピンポイントで向上させる」を実現することが可能になります。

インスタンスレベルでの分析

インスタンスレベルの分析では、GitLab全体の状況を把握することが可能です。そのため、複数プロジェクトや複数グループを俯瞰したい場合に有効です。

具体的には、

  • 複数のプロジェクト/グループを兼任している人の状況
  • 開発機能をプロジェクト/グループ毎に分けている場合の状況

等の分析に有効です。

こういった状況の場合は特に現状把握が困難になってしまう可能性が高いですが、GitLabの機能を利用すれば可能になります。

グループレベルでの分析

グループレベルの分析では、以下のような分析が可能です。

セキュリティダッシュボード

アプリケーションのセキュリティ体制を評価する機能で、プロジェクトで実行されるセキュリティスキャナーによって検出された脆弱性のメトリック、評価、およびグラフを表示します。

ダッシュボートでは以下のような内容を表示します。

  • グループ内のすべてのプロジェクトについて、30 日、60 日、または 90 日の時間枠における脆弱性の傾向
  • 脆弱性の深刻度に基づく各プロジェクトのレターグレード評価
  • 過去 365 日以内に検出された脆弱性の総数 (重大度を含む)

左メニュー「Secure」>「Security dashboard」で表示されます。

gitlab_202404_01_01.png

コントリビューション分析

Groupのメンバーが行ったコントリビューションの分析が行えます。

分析対象項目は以下の通りです。

  • プッシュ
  • マージリクエスト
  • Issuesのクローズ

また上記のような項目をメンバー毎のグラフでも表示可能なため、この分析を活用することで次のような内容を可視化出来ます。

  • 一定期間のグループの貢献度
  • パフォーマンスの高いGroupメンバーや、追加サポートの恩恵を受ける可能性のあるGroupメンバー

gitlab_202404_01_02.png

DevOpsの導入

組織内のGroupGitLabの機能をどのように採用し、使用しているかを表示します。

この情報を分析することで、次のような内容を確認することができます。

  • GitLab機能の導入が遅れている特定のサブグループを特定し、それらをガイド
  • 特定の特徴を採用しているサブグループを見つけ、他のサブグループにガイダンスを提供
  • GitLabから期待した投資収益率が得られているかどうかを確認

gitlab_202404_01_03.png

インサイト分析

ProjectGroupの情報を分析し、以下のような内容を検索可能にします。

  • 指定した期間に作成およびクローズされたIssues
  • マージリクエストがマージされるまでの平均時間
  • DORA4に基づいたバグ発生から修復までの平均時間

またこれらの情報をレポートとしてエクスポートすることも可能です。

Issues分析

毎月作成されたIssuesの数をグラフで表示します。期間はデフォルトでは13か月前~前月が表示されます。

またクローズされたIssuesの数も表示可能なため、作成数と併せて分析することで全体的なターンアラウンドタイムと顧客に提供する価値を改善できます。

gitlab_202404_01_04.png

また同画面でIssuesの詳細情報も確認可能です。こちらの表示は当月の情報も表示されます。

gitlab_202404_01_05.png

生産性分析

この項目では主にマージリクエストに関する情報の表示、分析が可能です。統計に表示されえるデータは以下の通りです。

  • マージリクエストが作成されてからマージされるまでの時間
  • コミット、コメント、マージの間の時間
  • コミットあたりのコード行数やファイル数など、変更の複雑さ

リポジトリ分析

Group内のすべてのProjectのコード情報や、テストカバレッジに関する情報を提供します。

全体分析では以下のような内容の分析が可能です。

  • カバレッジ レポートのあるプロジェクトの数
  • すべてのプロジェクトにおけるカバレッジの平均割合
  • カバレッジ レポートを生成するパイプライン ジョブの合計数

また過去のテストカバレッジ情報をエクスポートすることも可能です。

バリューストリーム管理分析およびバリューストリーム管理ダッシュボード

こちらの項目に関しての詳細は「バリューストリーム管理」にて後述

プロジェクトレベルでの分析

プロジェクトレベルの分析では、以下のような分析が可能です。

グループレベルと同様の分析が可能な項目がありますが、こちらはスコープが異なります。

その他、グループレベルとの差分のみ記述しております。

分析ダッシュボード

データソースを使用してカスタムダッシュボードを作成することが可能です。

データソースには以下の内容が含まれます。

  • 製品分析情報
  • バリューストリーム管理情報

セキュリティダッシュボード

プロジェクトレベルでは「プロジェクトセキュリティダッシュボード」が利用可能になります。ここではプロジェクト内の脆弱性の総数が、日単位の遷移で表示されます。

gitlab_202404_01_06.png

CI/CD分析とDORAメトリクス

パイプラインの成功率と期間、および時間の経過に伴うDORAメトリックの履歴を表示します。

gitlab_202404_01_07.png

また上記タブでのパイプライン情報以外にも、

  • Deployment frequency:デプロイ頻度
  • Lead time:コード変更が本番環境に反映されるまでの時間
  • Time to restore service:運用環境でのインシデントオープン時間
  • Change failure rate:運用環境でインシデントを引き起こしたデプロイの割合

といった、運用に関する細かい情報を表示することが可能です。

コードレビュー分析

少なくともの1つ以上のマージリクエスト作成者以外のコメントがある未解決のマージリクエストのテーブルが表示されます。レビュー時間は、マージリクエストにおけるマージリクエスト作成者以外による最初のコメントからの時間です。

コードレビュー分析では以下のような問題を発見することが可能です。

  • コメントやコミットの数が多い:コードが複雑すぎる
  • レビュー時間が長い:開発サイクルを早める機会がある
  • コメントや承認者が少ない:チームメンバーが不足している可能性がある

gitlab_202404_01_08.png

コントリビューター分析

プロジェクトメンバーがプロジェクトに対して行ったコミットの概要を時系列で把握できます。

また、日ごとに各メンバーが行ったコミット詳細の確認も可能です。

この機能により作業スピードや各メンバーの負担を可視化することが可能になります。

gitlab_202404_01_09.png

インサイト分析

Issues分析

マージリクエスト分析

リポジトリ分析

プロジェクトレベルでのリポジトリ分析ではコードカバレッジに加え、以下のような内容が確認出来ます。

  • リポジトリで使用されているプログラミング言語
  • コミット統計 (先月)
  • 月の日ごとのコミット数
  • 平日ごとのコミット数
  • 日時間 (UTC) あたりのコミット数

gitlab_202404_01_10.png

gitlab_202404_01_11.png

バリューストリーム管理分析およびバリューストリーム管理ダッシュボード

こちらの項目に関しての詳細は「バリューストリーム管理」にて後述

バリューストリーム管理

バリューストリーム(価値の流れ)とは、顧客に価値を提供する作業プロセス全体のことです。例えば、DevOpsのライフサイクル、「Manage」ステージから始まり、「Protect」ステージで終わる価値の流れになります。

またバリューストリームは、製品が生産されるために必要な全てのアクティビティ、部品、人材、情報、および資源を示します。

バリューストリームを分析することで、顧客価値提供における現状の問題点(想定よりも工数がかかっている作業)を洗い出し、改善することが可能になります。

分析によって可視化される項目には以下のようなものが挙げられます。

  • アイデアから制作にかかる時間
  • 特定のプロジェクトのベロシティ
  • 開発プロセスのボトルネック
  • 実行時間の長いIssuesまたはマージリクエスト
  • ソフトウェア開発ライフサイクルを遅らせる要因

 

GitLabでは「グループ」および「プロジェクト」レベルでの分析が可能で、「バリューストリームダッシュボード」の機能も提供しています。

グループレベルのValue stream analytics

gitlab_202404_01_12.png

プロジェクトレベルのValue stream analytics

gitlab_202404_01_13.png

まとめ

開発状態の確認/分析が行えるアナライズ機能について解説しました。

このような分析は開発の最適化において必須ながら、特にコードに関する情報以外では、データ収集を実現することすら難しいというのが現状です。

GitLabはコードと開発体制を一括管理しているため、コードに紐づいた各プロジェクトの状況を、殆どの機能において複雑な設定なしにデータ修正から分析まで行うことが可能になりますので、ぜひお試しください。

最終回となる次回はAI機能である「GitLab Duo」について解説します。世界中でトレンドであるAIGitLabではどのように活用しているかを解説しますので、こちらもぜひ併せてご覧ください。

GitLabの特設サイトはこちら

GitLab特設サイトでは、GitLabの製品情報や
トライアル(無償試用版)をお申込みいただけます。
ぜひ、特設サイトをご確認ください。

この記事の著者:佐藤梨花

SB C&S株式会社 テクニカルマーケティングセンター

勤怠管理システムの開発(使用言語:Java)に約8年間従事。
現在はエンジニア時の経験を活かしたDevOpsやDX推進のプリセールスとして業務に精励しています。


DevOps Hubのアカウントをフォローして
更新情報を受け取る

  • Like on Feedly
    follow us in feedly

関連記事

このエントリーをはてなブックマークに追加

お問い合わせ

DevOpsに関することなら
お気軽にご相談ください。

Facebook、TwitterでDevOpsに関する
情報配信を行っています。