🐶
Datadog CI VisibilityでEnvなどのタグを設定する方法
課題
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
のように実行すること自体はできるが、tag
サブコマンドが現状では使えず以下のエラーが発生する。
Error: Only providers [GitHub, GitLab, CircleCI, Buildkite, Jenkins, TeamCity, AzurePipelines] are supported
Discussion