Docker タグの抽出

概要

Datadog Agent は、タグを作成し、ラベルまたは環境変数に基づいてコンテナが発行するすべてのメトリクス、トレース、ログに割り当てることができます。

ホスト上で Agent をバイナリとして実行している場合は、Agent タブの手順を使用してタグ抽出を構成します。Agent をコンテナとして実行している場合は、コンテナ化された Agent タブの手順でタグ抽出を構成します。

すぐに使えるタグ付け

Agent は、タグを自動検出し、コンテナにより送信されたすべてのデータにアタッチします。アタッチされるタグのリストは、Agent のカーディナリティコンフィギュレーションに基づきます。

タグカーディナリティ要件
container_nameN/A
: containerd ランタイムには含まれません。
container_idN/A
rancher_containerRancher 環境
mesos_taskオーケストレーターMesos 環境
docker_imageN/A
: containerd ランタイムには含まれません。
image_nameN/A
short_imageN/A
image_tagN/A
swarm_serviceSwarm 環境
swarm_namespaceSwarm 環境
rancher_stackRancher 環境
rancher_serviceRancher 環境
env統合サービスタグ付け有効
version統合サービスタグ付け有効
service統合サービスタグ付け有効
marathon_appMarathon 環境
chronos_jobMesos 環境
chronos_job_ownerMesos 環境
nomad_taskNomad 環境
nomad_jobNomad 環境
nomad_groupNomad 環境
git.commit.shaorg.opencontainers.image.revision の使用
git.repository_urlorg.opencontainers.image.source の使用

統合サービスタグ付け

Datadog では、コンテナ化環境のベストプラクティスとして、タグを付ける際に統合サービスタグ付けを使用することをおすすめしています。統合サービスタグ付けは、envserviceversion の 3 つの標準タグを使用して Datadog テレメトリーと結合します。ご使用環境で統合タグ付けを構成する方法に関する詳細は、専用の統合サービスタグ付けドキュメントをご参照ください。

ラベルをタグとして抽出

Agent v6.0 以降、Agent は特定のコンテナのラベルを収集し、それらをタグとして使用して、このコンテナが発行するすべてのデータにアタッチできます。

特定のコンテナラベル <LABEL_NAME> を抽出し、Datadog 内のタグキー <TAG_KEY> として変換するには、次の環境変数を Datadog Agent に追加します。

DD_CONTAINER_LABELS_AS_TAGS='{"<LABEL_NAME>": "<TAG_KEY>"}'

たとえば、次のように設定できます。

DD_CONTAINER_LABELS_AS_TAGS='{"com.docker.compose.service":"service_name"}'

: <LABEL_NAME> は、大文字と小文字を区別しません。つまり、fooFOO のラベルを使用していて、DD_CONTAINER_LABELS_AS_TAGS='{"foo": "bar"}' を設定すると、foo および FOO の両方が bar にマッピングされます。

: DD_CONTAINER_LABELS_AS_TAGS は古い DD_DOCKER_LABELS_AS_TAGS と同等で、DD_CONTAINER_ENV_AS_TAGSDD_DOCKER_ENV_AS_TAGS と同等です。

特定のコンテナラベル <LABEL_NAME> を抽出し、Datadog 内のタグキー <TAG_KEY> として変換するには、Agent datadog.yaml 構成ファイルに次の構成ブロックを追加します。

container_labels_as_tags:
  <LABEL_NAME>: <TAG_KEY>

たとえば、次のように設定できます。

container_labels_as_tags:
  com.docker.compose.service: service_name

環境変数をタグとして抽出

Datadog は Docker、Kubernetes、ECS、Swarm、Mesos、Nomad、Rancher から一般的なタグを自動的に収集します。さらに多くのタグを抽出するには、次のオプションを使用します。

環境変数説明
DD_CONTAINER_LABELS_AS_TAGSコンテナラベルを抽出する
DD_CONTAINER_ENV_AS_TAGSコンテナ環境変数を抽出する
DD_KUBERNETES_POD_LABELS_AS_TAGSポッドラベルを抽出します
DD_CHECKS_TAG_CARDINALITYタグをチェックメトリクスに追加します
DD_DOGSTATSD_TAG_CARDINALITYタグをカスタムメトリクスに追加します

Agent v7.20 以降では、コンテナ化された Agent はコンテナラベルからタグを自動検出できます。このプロセスにより、Agent は、Agent の datadog.yaml ファイルを変更することなく、コンテナによって発行されたすべてのデータにカスタムタグを関連付けることができます。

タグは次の形式で追加する必要があります。

com.datadoghq.ad.tags: '["<TAG_KEY_1>:<TAG_VALUE_1>", "<TAG_KEY_2>:<TAG_VALUE_2>"]'

Agent v6.0 以降、Agent は特定のコンテナの環境変数を収集し、それらをタグとして使用して、このコンテナが発行するすべてのデータにアタッチできます。

特定のコンテナ環境変数 <ENVVAR_NAME> を抽出し、Datadog 内のタグキー <TAG_KEY> として変換するには、次の環境変数を Datadog Agent に追加します。

DD_CONTAINER_ENV_AS_TAGS='{"<ENVVAR_NAME>": "<TAG_KEY>"}'

たとえば、次のように設定できます。

DD_CONTAINER_ENV_AS_TAGS='{"ENVIRONMENT":"env"}'

特定のコンテナ環境変数 <ENVVAR_NAME> を抽出し、Datadog 内のタグキー <TAG_KEY> として変換するには、Agent datadog.yaml 構成ファイルに次の構成ブロックを追加します。

container_env_as_tags:
  <ENVVAR_NAME>: <TAG_KEY>

たとえば、次のように設定できます。

container_env_as_tags:
  ENVIRONMENT: env

その他の参考資料