🐙

GitHub Actions Performance Metricsを見てみよう

2024/12/20に公開

tl;dr

2024年10月、GitHubは新機能「Actions Performance Metrics」をパブリックプレビューとして公開しました。 この記事ではActions Performance Metricsの機能で何ができるか、実際に見てみて感想を書こうと思います。

Actions Performance Metricsとは

https://docs.github.com/ja/actions/administering-github-actions/viewing-github-actions-metrics

Actions Performance Metricsは、組織やリポジトリ内のワークフローやジョブのパフォーマンスに関する指標を提供する観測ツールです。

主な機能

  1. ワークフローのパフォーマンスデータの表示: 組織内の各ワークフローに対して、平均実行時間やジョブの失敗率などのデータを提供し、非効率なワークフローや安定性の問題を特定します。

  2. ジョブごとの詳細な分析: 各ジョブの平均実行時間、平均待機時間、失敗率などを表示し、特定のジョブの問題点を明確にします。

  3. リポジトリごとのスナップショット: 組織内の各リポジトリにおける平均的なパフォーマンス指標を提供し、リポジトリ間での比較や改善点の発見を支援します。

  4. ランナーのパフォーマンス評価: 各オペレーティングシステム上のランナーのパフォーマンスを分析し、セルフホステッドランナーとGitHubホステッドランナーの比較を行うことで、最適なランナータイプの選択に役立てます。

これらの情報を活用することで、ボトルネックの特定やリソースの最適化が容易になり、CI/CDパイプラインの全体的な効率を向上させることができます。

利用方法

Actions Performance Metricsを利用するには、以下の手順を実行します:

  1. GitHubの組織またはリポジトリのトップページで、上部にある「Insights」を選択します。
  2. 左側のメニューから「Actions Performance Metrics」を選択します。
  3. 表示されたページで、ワークフローやジョブのパフォーマンスデータを確認できます。

さらに、期間の選択やフィルター機能を活用して、特定の期間や条件に基づくデータの分析が可能です。

最新のアップデート

2024年12月には、ジョブタブにランナーラベルの表示機能が追加されました。これにより、特定のランナーに関連するメトリクスを確認することができるようになりました。

  • 特定のランナーの平均待機時間はどれくらいか?
  • どのリポジトリが特定のランナーを使用しているか?
  • どのジョブが特定のランナーラベル(例:ubuntu-latest)を使用しているか?

https://github.blog/changelog/2024-12-06-actions-metrics-improvements-adding-runner-labels/?utm_source=chatgpt.com

APIはある?

現状Actions Performance Metricsで見れるデータをAPIで取得することはできないようです。
ただ、Community Discussionではロードマップには入っているそうなので、そのうち取得できるようになりそうです。

https://github.com/orgs/community/discussions/142513#discussioncomment-11115500

実際に見てみる

実際にリポジトリの数値を見てみました。

データの範囲をCurrent Monthにしてみました。
上部にジョブの平均時間など、代表的な統計値がぱっと見でわかるようになっています。
その下に
各ワークフローの

  • 失敗率
  • 平均実行時間
  • 実行回数
  • ジョブの数

がテーブル表示されています。わかりやすいですね。
テーブル上のタブを見るとわかる通り、ワークフロー以外にも

  • ジョブ
  • Runtime OS
  • Runner type

ごとに統計情報を確認することができます。

まとめと感想

この機能を活用することで、開発プロセスのボトルネックや失敗率の多いジョブの特定ができ、改善につなげることができそうです。

実際の画面を見てみた感想としては、やっぱりトレンドが見たいかなーと思いました。CIの実行時間のモニタリングや改善を行う際には、時系列にメトリクスを確認して実行時間や失敗率が上下しているか、改善をしているときには数値が実際に改善しているかを定期的に確認したくなります。そういった点ではDatadogのCI Pipeline Visibilityのほうがはるかに深い洞察を得ることができます。

まだPublic previewの段階でAPIも含めてこれから機能が充実してくるかもしれません。ユーザーからの意見や要望はCommunity Discussionで投稿することもできます。是非確認してみてください!

サイバーエージェント Developer Productivity室

Discussion