選択したサイト () では CI Visibility は利用できません。

カスタムコマンドは、CI パイプラインの個々のコマンドをトレースする方法を提供し、ジョブが持つかもしれないセットアップやティアダウンアクション (例えば、Docker イメージのダウンロードや Kubernetes ベースのインフラで利用できるノードの待機) を考慮せずにコマンドにかかる時間を測定することを可能にします。これらのスパンは、パイプラインのトレースの一部として表示されます。

カスタムコマンドを使用した単一パイプラインの詳細

互換性

カスタムコマンドは、以下の CI プロバイダーで動作します。

  • GitHub.com (SaaS) with datadog-ci CLI >= 2.40. For sending custom commands in GitHub Actions, see Trace a command.
  • GitLab (SaaS or self-hosted >= 14.1) with datadog-ci CLI >= 2.40.
  • Jenkins with the Datadog plugin >= v3.2.0
  • CircleCI
  • Azure DevOps Pipelines with datadog-ci CLI >= 2.40.
  • AWS Codepipeline with datadog-ci CLI >= 2.40. Follow Adding custom commands to set up custom commands in AWS Codepipeline.
  • Buildkite with datadog-ci CLI >= 2.40.

Datadog CI CLI のインストール

npm を使用して datadog-ci (>=v0.17.0) CLI をグローバルにインストールします。

npm install -g @datadog/datadog-ci

コマンドのトレース

コマンドをトレースするには、以下を実行します。

datadog-ci trace [--name <name>] -- <command>

環境変数 DATADOG_API_KEY に有効な Datadog API キーを指定します。例:


DATADOG_API_KEY=<key> DATADOG_SITE= datadog-ci trace \
--name "Greet" \
-- \
echo "Hello World"

選択したサイト () では CI Visibility は利用できません。

構成設定

これらのオプションは datadog-ci trace コマンドで利用可能です。

--name
カスタムコマンドの表示名。
デフォルト: <command> と同じ値
: Wait for DB to be reachable
--tags
カスタムコマンドにアタッチされる key:value 形式のキーと値のペア (--tags パラメーターは複数回指定できます)。DD_TAGS を使用してタグを指定する場合は、カンマを使用してタグを区切ります (例: team:backend,priority:high)。
環境変数: DD_TAGS
デフォルト: (none)
: team:backend
: --tagsDD_TAGS 環境変数を使用して指定されたタグがマージされます。--tagsDD_TAGS の両方に同じキーが表示される場合、環境変数 DD_TAGS の値が優先されます。
--measures
Key-value pairs in the form key:value to be attached to the custom command as numerical values (the --measures parameter can be specified multiple times).
(Requires datadog-ci >=v2.35.0)
Default: (none)
Example: size:1024
--no-fail
サポートされていない CI プロバイダーで実行しても、datadog-ci が失敗しないようにします。この場合、コマンドは実行されますが、Datadog には何も報告されません。
デフォルト: false
--dry-run
Prevents datadog-ci from sending the custom span to Datadog. All other checks are performed.
Default: false
位置引数
起動され、トレースされるコマンド。

次の環境変数がサポートされています。

DATADOG_API_KEY (必須)
リクエストの認証に使用される Datadog API キー
デフォルト: (なし)

さらに、選択したサイトを使用するように Datadog サイトを構成します ():

DATADOG_SITE
結果をアップロードする Datadog サイト。
デフォルト: datadoghq.com
選択したサイト:

Trace a command in GitHub Actions

If the job name does not match the entry defined in the workflow configuration file (the GitHub job ID), the DD_GITHUB_JOB_NAME environment variable needs to be exposed, pointing to the job name. For example:

  1. If the job name is changed using the name property:

    jobs:
      build:
        name: My build job name
        env:
          DD_GITHUB_JOB_NAME: My build job name
        steps:
        - run: datadog-ci trace ...
    
  2. If the matrix strategy is used, several job names are generated by GitHub by adding the matrix values at the end of the job name, within parenthesis. The DD_GITHUB_JOB_NAME environment variable should then be conditional on the matrix values:

    jobs:
      build:
        strategy:
          matrix:
            version: [1, 2]
            os: [linux, macos]
        env:
          DD_GITHUB_JOB_NAME: build (${{ matrix.version }}, ${{ matrix.os }})
        steps:
        - run: datadog-ci trace ...
    

参考資料

お役に立つドキュメント、リンクや記事: