Synthetics と CI/CD

このページでは、継続的インテグレーション (CI) パイプラインの Synthetic テストの実行について説明します。CI のメトリクスやデータを Datadog のダッシュボードに取り込みたい場合は、継続的インテグレーションの可視性のセクションを参照してください。

概要

あらかじめ定義された間隔でテストを実行するだけでなく、@datadog/datadog-ci パッケージや API を使用してオンデマンドで Datadog Synthetic テストを実行することができます。継続的インテグレーション (CI) パイプラインで Datadog Synthetic テストを実行すると、ブランチがデプロイされて本番でアプリケーションが壊れるのを防ぐことができます。

Synthetics と CI/CD を使用して、継続的デリバリー (CD) プロセスの一環としてテストを実行し、デプロイメントが終了した直後に本番環境でアプリケーションとサービスの状態を評価することもできます。ユーザーに影響を与える可能性のある回帰を検出し、重要なテストが失敗したときに自動的にロールバックを起動することができます。

この機能により、バグや回帰を早期に発見することで、本番環境での問題解決にかかる時間を短縮し、エンジニアリングチームは緊急性のない作業に集中することができます。

まずは、インテグレーションを参照し、API またはオープンソース CLI パッケージを使用します。

インテグレーション

Synthetics と CI/CD を使えば、Synthetic テストをお好みの CI プラットフォームプロバイダーで実行することができます。


CLI を使用する

@datadog/datadog-ci パッケージを使うと、CI/CD パイプラインの中で Synthetics テストを直接実行することができるようになります。

@datadog/datadog-ci NPM パッケージを使用するには、コンフィギュレーションを参照してください。

また、タグで検索してテストを起動することもできます。例: "ci": "datadog-ci synthetics run-tests --config fileconfig.json -s 'tag:staging'"

注: このコマンドは引数として動作します。コンフィギュレーションファイルでは使用しないでください。

API を使用する

Synthetics API のエンドポイントでは、ステージングとデプロイのライフサイクルのどの段階でもテストを開始できます。例えば、自動ロールバックされたカナリアデプロイメントの後などです。

API エンドポイントを使用して、新しいデプロイメントが回帰をもたらしていないことを迅速に検証します。CI/CD パイプラインからテストを起動するバッチの詳細の取得エンドポイントを参照して、cURL またはサポートされているクライアントを通して CI 内でそれらを使用します。

CI/CD パイプラインからのテストをトリガー

エンドポイントをトリガーするテストは、1 回のリクエストで最大 100 件のテストに対応します。

  • Endpoint: https://api./api/v1/synthetics/tests/trigger/ci
  • Method: POST
  • Argument: トリガーする全テストのリストと各テストのコンフィギュレーションオーバーライドを含む JSON オブジェクト。

リクエストデータの構造

{
    "tests": [TEST_TO_TRIGGER, TEST_TO_TRIGGER, ...]
}

TEST_TO_TRIGGER オブジェクトは、トリガーしたいテストに必要な public_id と、オプションのコンフィギュレーションオーバーライドで構成されます。各フィールドの説明については、テストの構成を参照してください。

テストの公開識別子は、テストの詳細ページの URL にあるテストの識別子 (たとえば https://app.datadoghq.com/synthetics/details/abc-def-ghi の識別子は abc-def-ghi) か、テストの詳細ページの完全な URL (たとえば https://app.datadoghq.com/synthetics/details/abc-def-ghi) のどちらかです。

詳しくは、Synthetics API エンドポイントのドキュメントをご覧ください。

バッチの詳細の取得

バッチの詳細の取得エンドポイントは、CI/CD パイプラインでトリガーされたテスト群 (バッチと呼ばれます) の結果を取得します。関連する CI の実行のための batch_id を提供する必要があります。

  • エンドポイント: https://api./api/v1/synthetics/ci/batch/{batch_id}
  • Method: GET
  • パラメーター: 検査したいテスト結果のバッチの batch_id

詳しくは、Synthetics API エンドポイントのドキュメントをご覧ください。

その他の参考資料