CI Visibility の概要

概要

CI Visibility または CI Pipeline Visibility では、CI パイプラインの健全性を監視し、パイプライン実行のパフォーマンスをトレースとして視覚化できます。トレース内のスパンはパイプラインの異なるレベルを表します。

Datadog CI Visibility の CI パイプラインのリスト表示

CI Visibility では、CI ジョブのログを転送し、それらをパイプラインと自動的に関連付けることができます。使用しているプロバイダーによって、CI Visibility の Settings ページでジョブログの収集を有効にするか、またはプロバイダーの設定で Datadog とのインテグレーションを行うことができます。

datadog-ci CLI を使用して、パイプライン内でトレースコマンドカスタムタグとメジャーコマンドを実行し、パイプラインのトレースにユーザー定義のテキストタグや数値タグを追加することもできます。

CI Visibility は DevOps およびプラットフォームエンジニアリング組織に包括的なモニタリング、分析、ボトルネックの特定と解決、リソース割り当ての最適化、CI コストの削減を提供します。

パフォーマンスメトリクス、ログ、アラートを統合することで、組織は開発速度を向上させ、パイプラインの信頼性を高め、クラウド環境およびセルフホスト環境におけるデータに基づいた意思決定を行うことができます。

CI プロバイダーの設定

CI Visibility は、CI パイプラインのパフォーマンスと結果を追跡し、パイプラインが終了した後に結果を表示します。

パイプラインメトリクスの送信を開始するには、以下の Datadog がサポートする CI プロバイダーのいずれかのドキュメントを参照してください。

aws codepipeline
azure devops extension
buildkite
circleci orb
codefresh
github actions
gitlab
jenkins
teamcity

CI プロバイダーがサポートされていない場合、プログラムを使用してパイプラインイベントを Datadog に送信できます。詳細はパイプライン イベントを Datadog に送信するセクションを参照してください。

選択した CI プロバイダーによっては、CI Visibility がパイプラインのすべてのレベル (ステージ、ジョブ、ステップ、コマンド) をサポートしていない場合があります。CI Visibility がどのように CI パイプラインを定義するかについては、用語セクションを参照してください。

CI パイプラインデータの利用

パイプラインのメトリクス (キュー時間、継続時間、パーセンタイル、ステータスなど) にアクセスし、CI プロバイダー全体で収集されたデータを使用して重要な傾向とパターンを特定し始めます。

すぐに使えるダッシュボードで、CI Visibility のパイプライン、ジョブ、ステージから収集したデータを表示するウィジェット

ダッシュボードを作成してパイプラインで障害が発生しているポイントを視覚化することや、すぐに使えるダッシュボードで CI Visibility で収集したデータを入力したウィジェットを使用して、CI パイプライン、ステージ、ジョブの健全性とパフォーマンスを視覚化することができます。

CI パイプラインの検索と管理

CI Pipeline List ページは、デフォルトブランチの CI パイプラインのパフォーマンスと信頼性に関する包括的なビューを提供します。集計された統計、トレンド、およびパイプラインに関する情報にアクセスし、障害や回帰などの問題を特定して解決します。

トラブルシューティングを強化し、パイプライン管理プロセスを合理化するために、パイプラインをクリックしてインサイトにアクセスし、実行履歴をレビューし、ログや関連するテレメトリーデータにピボットします。詳細については、CI パイプラインの検索と管理を参照してください。

CI Visibility Explorer で結果を確認

CI Visibility Explorer では、CI プロバイダーから収集したデータを使用してパイプラインスパンの視覚化やフィルタリングを行うことができます。各パイプライン実行は、ステージとジョブ情報を含むトレースとして報告されます。

Software Delivery > CI Visibility > Executions に移動し、Pipeline を選択してパイプラインスパンの結果のフィルタリングを開始します。

Shopist リポジトリでフィルタリングされた CI Visibility Explorer のパイプライン実行結果

Software Delivery > CI Visibility > Executions に移動し、Stage を選択してステージスパンの結果のフィルタリングを開始します。

Shopist リポジトリでフィルタリングされた CI Visibility Explorer のステージ結果

Software Delivery > CI Visibility > Executions に移動し、Job を選択してジョブスパンの結果のフィルタリングを開始します。

Shopist リポジトリでフィルタリングされた CI Visibility Explorer のジョブ結果

Software Delivery > CI Visibility > Executions に移動し、Step を選択してステップスパンの結果のフィルタリングを開始します。

Shopist リポジトリでフィルタリングされた CI Visibility Explorer のステップ結果

ファセットを使用して検索クエリをカスタマイズし、パイプラインの各レベルで費やされた時間の変化を特定します。

パイプラインをクリックすると、Pipeline Executions セクションにリストされている個々のパイプライン実行にアクセスできます。パイプラインの実行をクリックすると、Trace タブでフレームグラフやスパンのリストを見ることができます。

ステージングビルドおよびテストパイプラインのフレームグラフとして視覚化されたパイプライン実行結果

パイプラインのボトルネックを特定し、実行時間の割合が大きいものから小さいものへとランク付けされた個々のノードを調査できます。

Test Visibility を設定した後、パイプライン実行のサイドパネルの Test Runs タブで、テストのステータス (Failed、New Flaky、Passed、Skipped) を含む CI パイプラインで実行されたテストに関する情報にアクセスできます。詳細については、Flaky Test Management ドキュメントを参照してください。

パイプライン実行のサイドパネルの Logs タブで、クラウドおよびセルフホスト型ランナー全体のパイプラインまたはジョブのログにアクセスし、ランナーに関する情報を確認できます。

サポートされているプロバイダーを使用している場合、インフラストラクチャーのメトリクスと GitLab ジョブを関連付け、GitLab ジョブのホスト、システム、ホストタグ、ホストメトリクスの情報にアクセスできます。詳細については、Datadog で GitLab ジョブとインフラストラクチャーメトリクスを相関させるを参照してください。

パイプラインイベントを Datadog に送信

他のパイプラインプロバイダーやカスタムパイプラインの場合、CI Visibility Pipelines API を使用してパイプラインイベントを Datadog にプログラムで送信できます。詳細については、パイプラインデータモデルと実行タイプを参照してください。

リクエストには、パイプライン実行のトリガーとなったコミットの以下の Git 情報 (リポジトリ URL、コミット SHA、および作者のメール) を含めてください。

CI パイプラインモニターを作成

CI モニターを使用して、CI パイプラインで障害が発生したり、期間のしきい値を超えたりしたときに、パイプラインの健全性やパフォーマンスの低下を組織の関連チームに警告します。

テストとデプロイカートパイプラインの平均継続時間が過去 1 日で 5 分を超えたときにトリガーするように構成された CI パイプラインモニター

過去 1 日の平均継続時間が 5 分のしきい値を超えたときに CI パイプラインに警告を出すモニターを設定するには、以下の手順に従います。

  1. Monitors > New Monitor に移動し、CI を選択します。
  2. CI パイプラインの一般的なモニタータイプを選択して開始します。たとえば、パイプラインの実行時間が長すぎる場合に警告をトリガーする Long Running Pipeline や、ジョブの失敗に対して警告をトリガーする Failed Job を選択するか、独自の検索クエリをカスタマイズします。この例では、@ci.pipeline.name:test_and_deploy_cart を入力し、Duration (@duration) の平均を選択します。
  3. Evaluate the query over the セクションで、last 1 day を選択します。
  4. 評価された値がしきい値を超えたときに警告をトリガーするように警告条件を設定し、Alert threshold > 300000000000 のように警告や注意のしきい値を指定します。
  5. Notify your team セクションで、モニターの通知設定を構成します。
  6. モニターの権限を設定します。
  7. Create をクリックします。

その他の参考資料