🐶

Datadog CI VisibilityでEnvなどのタグを設定する方法

2024/10/08に公開

課題

Datadog Continuous Integration Visibilityを普通に使うと env:none になってしまい、envタグを活用できない。

解決策

公式ドキュメントの https://docs.datadoghq.com/ja/continuous_integration/pipelines/custom_tags_and_measures/?tab=linux#add-tags-and-measures-to-github-jobs を参考にステップ内で datadog-ci tag コマンドを実行する。

実例

datadog-ci-visibility-experiment.yml
name: datadog-ci-visibility-experiment
on:
  push: {}

jobs:
  job1:
    runs-on: ubuntu-latest

    steps:
      - run: |
          DATADOG_API_KEY=${{ secrets.DATADOG_API_KEY }} DATADOG_APP_KEY=${{ secrets.DATADOG_APP_KEY }} npx @datadog/datadog-ci tag --level pipeline --tags env:development



この解決策の課題

GitHub Actionsの実行時間を見ればわかるように、処理の実行へ約1分(54秒)かかっている。
並列で実行する、予めdatadog-ciバイナリが入ったDockerイメージを用意しておく、といった軽減策はあるものの、一定の実行時間増は避けられない。

datadog-ciは公式にDockerイメージを用意してくれており、

docker run --rm -v $(pwd):/w --env DATADOG_API_KEY=${{ secrets.DATADOG_API_KEY }} --env DATADOG_APP_KEY=${{ secrets.DATADOG_APP_KEY }} datadog/ci tag --level pipeline --tags env:development

のように実行すること自体はできるが、
https://github.com/DataDog/datadog-ci/issues/819
の問題があり tag サブコマンドが現状では使えず以下のエラーが発生する。

Error:  Only providers [GitHub, GitLab, CircleCI, Buildkite, Jenkins, TeamCity, AzurePipelines] are supported
株式会社エス・エム・エス

Discussion