LoginSignup
5
0

GitHub Actions Workflowの実行結果と実行時間をDatadog Monitorで仕込んでみた

Last updated at Posted at 2023-12-25

はじめに

皆さんこんにちは、asmgです。今回は、GitHub Actionsの実行時間、実行結果をDatadog Monitorに仕込む作業を行なったのでそのまとめをQiitaにできればと思います。

背景

普段、我々はMySQLのパーティション作成と削除のコマンドをスクリプト化し、そのスクリプトをKubernetesのPodで実行するためにGitHub ActionsのWorkflow Cronを使用しています。今まで実行結果が失敗した通知のみを受け取っており、実行時間の計測は行っていませんでした。実行時間の計測が行われていなかったことが、今回RDSの障害の一因になってしまいました。
※ RDSの障害については今回の記事とは関係ないので詳細には触れません。

結果を受けた対応策

そこで、Datadog Continuous Integration Visibility (以降文章の中ではDatadog CI Visibilityと呼びます。)を利用してCronの実行時間 + 実行結果(successかfailed)をMonitor化して計測できるように追加を行いました。

その方法を軽く以下で紹介したいなと思います。

Datadog CI Visibilityの紹介と作業したこと

Datadog CI Visibilityとは?

Datadog CI Visibilityは、CIのパフォーマンスや傾向、パイプラインの結果などを可視化してくれる機能です。

詳細については以下のページをご覧ください。
Datadog continuous_integration Visibility

monitorの作成

計測したい内容

今回は、Datadog CI Visibilityを用いて、

  • workflowの実行時間
  • workflowの成功の可否

のMonitor作成を行いたいと思います。

実際のモニターの作成

workflowの実行時間

実際のQuery
@git.repository.id:"<repository_name>" @ci.pipeline.name:"<workflow_name>" @git.branch:<branch_name>

スクリーンショット 0005-12-25 13.55.56.png

↑参考の画像

workflowの時間を計測したい場合には、最低限上記に示したQueryを書きShowをAvg of:Durationにすることでworkflowの時間を計測を計測することができると思います。

workflowの成功の可否

実際のQuery
 @git.repository.id:"<repository_name>" @ci.pipeline.name:"<workflow_name>" @git.branch:<branch_name> @ci.status:error

スクリーンショット 0005-12-25 14.04.39.png

↑参考の画像

workflowの成功の可否を計測したい場合には、最低限上記に示したQueryを書きShowをcount:*にすることでworkflowの成功の可否を計測することができると思います。
※ 今回は失敗を計測したいので@ci.status:errorを追加しています。

終わりに

本記事では、GitHub Actions Workflowの実行結果と実行時間をDatadog Monitorで仕込む方法についてまとめました。
Gihub ActionsのWorkflowを用いて作業の自動化を行う場合、実行結果や実行時間を計測することは障害や問題部分に気づくため必要なことです。(自分は今回の障害を通してすごく感じました。)
この記事がGitHub Actions Workflowの実行結果や実行時間をDatadog Monitorで計測したいという人の参考になると幸いです。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0