The Datadog Agent can automatically assign tags to metrics, traces, and logs emitted by a pod (or an individual container within a pod) based on labels or annotations.

すぐに使えるタグ

The list of automatically-assigned tags depends on the Agent’s cardinality configuration.

タグ粒度ソース要件
container_idポッドステータスN/A
display_container_nameポッドステータスN/A
pod_nameオーケストレーターポッドメタデータN/A
oshift_deploymentオーケストレーターポッドアノテーション openshift.io/deployment.nameOpenShift 環境およびポッドアノテーションが必要
kube_ownerref_nameオーケストレーターポッド ownerrefポッドにオーナーが必要
kube_jobオーケストレーターポッド ownerrefポッドはジョブにアタッチされていることが必要
kube_jobポッド ownerref
ポッドは cronjob にアタッチされていることが必要
kube_replica_setポッド ownerrefポッドはレプリカセットにアタッチされていることが必要
kube_serviceKubernetes サービスディスカバリーポッドは Kubernetes サービスの後方にあることが必要
kube_daemon_setポッド ownerrefポッドは DaemonSet セットにアタッチされていることが必要
kube_container_nameポッドステータスN/A
kube_namespaceポッドメタデータN/A
kube_app_nameポッドラベル app.kubernetes.io/nameポッドラベルが必要
kube_app_instanceポッドラベル app.kubernetes.io/instanceポッドラベルが必要
kube_app_versionポッドラベル app.kubernetes.io/versionポッドラベルが必要
kube_app_componentポッドラベル app.kubernetes.io/componentポッドラベルが必要
kube_app_part_ofポッドラベル app.kubernetes.io/part-ofポッドラベルが必要
kube_app_managed_byポッドラベル app.kubernetes.io/managed-byポッドラベルが必要
envポッドラベル tags.datadoghq.com/env またはコンテナ envvar DD_ENV統合サービスタグ付け有効
versionポッドラベル tags.datadoghq.com/version or container envvar DD_VERSION統合サービスタグ付け有効
serviceポッドラベル tags.datadoghq.com/service or container envvar DD_SERVICE統合サービスタグ付け有効
pod_phaseポッドステータスN/A
oshift_deployment_configポッドアノテーション openshift.io/deployment-config.nameOpenShift 環境およびポッドアノテーションが必要
kube_ownerref_kindポッド ownerrefポッドにオーナーが必要
kube_deploymentポッド ownerrefポッドはデプロイにアタッチされていることが必要
kube_replication_controllerポッド ownerrefポッドはレプリケーションコントローラーにアタッチされていることが必要
kube_stateful_setポッド ownerrefポッドは statefulset にアタッチされていることが必要
persistentvolumeclaimポッド仕様PVC がポッドにアタッチされていることが必要
kube_cronjobポッド ownerrefポッドは cronjob にアタッチされていることが必要
image_nameポッド仕様N/A
short_imageポッド仕様N/A
image_tagポッド仕様N/A
eks_fargate_nodeポッド仕様
EKS Fargate 環境

ホストタグ

Agent は Kubernetes 環境情報を “host tags” としてアタッチできます。

タグ粒度ソース要件
kube_cluster_nameDD_CLUSTER_NAME envvar またはクラウドプロバイダーインテグレーションDD_CLUSTER_NAME envvar またはクラウドプロバイダー有効
kube_node_roleノードラベル node-role.kubernetes.io/<role>ノードラベルが必要

タグのオートディスカバリー

Agent v6.10 以降では、Agent はポッドアノテーションからタグを自動検出できます。これにより、Agent は、ポッド全体またはこのポッド内の個々のコンテナから発行されるすべてのデータにタグを関連付けることができます。

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

<タグキー>:<タグ値> タグを特定のポッドから発行され、Agent によって収集されたすべてのデータに適用するには、ポッドで次のアノテーションを使用します。

annotations:
  ad.datadoghq.com/tags: '{"<タグキー>": "<タグ値>","<タグキー_1>": "<タグ値_1>"}'

ポッド内の個々のコンテナ <CONTAINER_IDENTIFIER><TAG_KEY>:<TAG_VALUE> タグを適用する場合は、ポッドで次のアノテーションを使用します。

annotations:
  ad.datadoghq.com/<コンテナ識別子>.tags: '{"<タグキー>": "<タグ値>","<タグキー_1>": "<タグ値_1>"}'

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

com.datadoghq.ad.tags: '["<タグキー>:タグ値", "<タグキー_1>:<タグ値_1>"]'

タグ抽出

タグとしてのノードラベル

Agent v6.0 以降、Agent は指定されたノードのラベルを収集し、Datadog のこの host に関連するすべてのメトリクス、トレース、ログに関連付けるタグとして使用することができます。

指定されたノードラベル <NODE_LABEL> を抽出して、Datadog 内でタグキー <TAG_KEY> として変換するには、datadog-agent.yaml 内の Operator の DatadogAgent 構成に以下の構成を追加します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    nodeLabelsAsTags:
      <NODE_LABEL>: <TAG_KEY>

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

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    nodeLabelsAsTags:
      kubernetes.io/arch: arch

Agent v7.24.0 以降の場合、次の環境変数構成を使用して、すべてのノードラベルをタグとしてメトリクスに追加します。この例では、タグの名前の前に <PREFIX>_ が付いています。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    nodeLabelsAsTags:
      "*": <PREFIX>_%%label%%

指定したノードラベル <NODE_LABEL> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Helm の datadog-values.yaml ファイルに以下の構成を追加します。

datadog:
  nodeLabelsAsTags:
    <NODE_LABEL>: <TAG_KEY>

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

datadog:
  nodeLabelsAsTags:
    kubernetes.io/arch: arch

Agent v7.24.0 以降の場合、次の環境変数構成を使用して、すべてのノードラベルをタグとしてメトリクスに追加します。この例では、タグの名前の前に <PREFIX>_ が付いています。

datadog:
  nodeLabelsAsTags:
    "*": <PREFIX>_%%label%%

To extract a given node label <NODE_LABEL> and transform it as a tag key <TAG_KEY> within Datadog, add the following environment variable to the Datadog Agent:

DD_KUBERNETES_NODE_LABELS_AS_TAGS='{"<NODE_LABEL>": "<TAG_KEY>"}'

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

DD_KUBERNETES_NODE_LABELS_AS_TAGS='{"kubernetes.io/arch":"arch"}'

Agent v7.24.0 以降の場合、次の環境変数構成を使用して、すべてのノードラベルをタグとしてメトリクスに追加します。この例では、タグの名前の前に <PREFIX>_ が付いています。

DD_KUBERNETES_NODE_LABELS_AS_TAGS='{"*":"<PREFIX>_%%label%%"}'

: カスタムメトリクスは請求に影響を与える可能性があります。詳細については、カスタムメトリクスの請求ページを参照してください。

タグとしてのポッドラベル

Agent v6.0 以降、Agent は特定のポッドのラベルを収集し、それらをタグとして使用して、このポッドが発行するすべてのメトリクス、トレース、ログに関連付けることができます。

指定されたポッドラベル <POD_LABEL> を抽出して、Datadog 内でタグキー <TAG_KEY> として変換するには、datadog-agent.yaml 内の Operator の DatadogAgent 構成に以下の構成を追加します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podLabelsAsTags:
      <POD_LABEL>: <TAG_KEY>

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

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podLabelsAsTags:
      app: kube_app

Agent v7.24.0 以降の場合、次の環境変数構成を使用して、すべてのポッドラベルをタグとしてメトリクスに追加します。この例では、タグの名前の前に <PREFIX>_ が付いています。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podLabelsAsTags:
      "*": <PREFIX>_%%label%%

指定したポッドラベル <POD_LABEL> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Helm の datadog-values.yaml ファイルに以下の構成を追加します。

datadog:
  podLabelsAsTags:
    <POD_LABEL>: <TAG_KEY>

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

datadog:
  podLabelsAsTags:
    app: kube_app

Agent v7.24.0 以降の場合、次の環境変数構成を使用して、すべてのポッドラベルをタグとしてメトリクスに追加します。この例では、タグの名前の前に <PREFIX>_ が付いています。

datadog:
  podLabelsAsTags:
    "*": <PREFIX>_%%label%%

To extract a given pod label <POD_LABEL> and transform it as a tag key <TAG_KEY> within Datadog, add the following environment variable to the Datadog Agent:

DD_KUBERNETES_POD_LABELS_AS_TAGS='{"<POD_LABEL>": "<TAG_KEY>"}'

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

DD_KUBERNETES_POD_LABELS_AS_TAGS='{"app":"kube_app"}'

Agent v6.8.0 以降の場合、次の環境変数構成を使用して、すべてのポッドラベルをタグとしてメトリクスに追加します。この例では、タグ名の前に <プレフィックス>_ が付いています。

DD_KUBERNETES_POD_LABELS_AS_TAGS='{"*":"<PREFIX>_%%label%%"}'

: カスタムメトリクスは請求に影響を与える可能性があります。詳細については、カスタムメトリクスの請求ページを参照してください。

タグとしてのポッドアノテーション

Agent v6.0 以降、Agent は特定のポッドのアノテーションを収集し、それらをタグとして使用して、このポッドが発行するすべてのメトリクス、トレース、ログに関連付けることができます。

指定されたポッドアノテーション <POD_ANNOTATION> を抽出して、Datadog 内でタグキー <TAG_KEY> として変換するには、datadog-agent.yaml 内の Operator の DatadogAgent 構成に以下の構成を追加します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podAnnotationsAsTags:
      <POD_ANNOTATION>: <TAG_KEY>

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

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podAnnotationsAsTags:
      app: kube_app

Agent v7.24.0 以降の場合、次の環境変数構成を使用して、すべてのポッドアノテーションをタグとしてメトリクスに追加します。この例では、タグの名前の前に <PREFIX>_ が付いています。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podAnnotationsAsTags:
      "*": <PREFIX>_%%label%%

指定したポッドアノテーション <POD_ANNOTATION> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Helm の datadog-values.yaml ファイルに以下の構成を追加します。

datadog:
  podAnnotationsAsTags:
    <POD_ANNOTATION>: <TAG_KEY>

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

datadog:
  podAnnotationsAsTags:
    app: kube_app

Agent v7.24.0 以降の場合、次の環境変数構成を使用して、すべてのポッドアノテーションをタグとしてメトリクスに追加します。この例では、タグの名前の前に <PREFIX>_ が付いています。

datadog:
  podAnnotationsAsTags:
    "*": <PREFIX>_%%label%%

To extract a given pod annotation <POD_ANNOTATION> and transform it as a tag key <TAG_KEY> within Datadog, add the following environment variable to the Datadog Agent:

DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGS='{"<POD_ANNOTATION>": "<TAG_KEY>"}'

For example, you could set up:

DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGS='{"app":"kube_app"}'

Agent v7.24.0 以降の場合、次の環境変数構成を使用して、すべてのポッドアノテーションをタグとしてメトリクスに追加します。この例では、タグ名の前に <プレフィックス>_ が付いています。

DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGS='{"*":"<PREFIX>_%%annotation%%"}'

: カスタムメトリクスは請求に影響を与える可能性があります。詳細については、カスタムメトリクスの請求ページを参照してください。

タグとしてのネームスペースラベル

Agent 7.27 以降、Agent は特定のネームスペースのラベルを収集し、それらをタグとして使用して、このネームスペースのすべてのポッドが発行するすべてのメトリクス、トレース、ログに関連付けることができます。

指定されたネームスペースラベル <NAMESPACE_LABEL> を抽出して、Datadog 内でタグキー <TAG_KEY> として変換するには、datadog-agent.yaml 内の Operator の DatadogAgent 構成に以下の構成を追加します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    namespaceLabelsAsTags:
      <NAMESPACE_LABEL>: <TAG_KEY>

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

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    namespaceLabelsAsTags:
      app: kube_app

Agent v7.24.0 以降の場合、次の環境変数構成を使用して、すべてのネームスペースラベルをタグとしてメトリクスに追加します。この例では、タグの名前の前に <PREFIX>_ が付いています。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    namespaceLabelsAsTags:
      "*": <PREFIX>_%%label%%

指定したネームスペースラベル <NAMESPACE_LABEL> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Helm の datadog-values.yaml ファイルに以下の構成を追加します。

datadog:
  namespaceLabelsAsTags:
    <NAMESPACE_LABEL>: <TAG_KEY>

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

datadog:
  namespaceLabelsAsTags:
    app: kube_app

Agent v7.24.0 以降の場合、次の環境変数構成を使用して、すべてのネームスペースラベルをタグとしてメトリクスに追加します。この例では、タグの名前の前に <PREFIX>_ が付いています。

datadog:
  namespaceLabelsAsTags:
    "*": <PREFIX>_%%label%%

To extract a given namespace label <NAMESPACE_LABEL> and transform it as a tag key <TAG_KEY> within Datadog, add the following environment variable to the Datadog Agent:

DD_KUBERNETES_NAMESPACE_LABELS_AS_TAGS='{"<NAMESPACE_LABEL>": "<TAG_KEY>"}'

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

DD_KUBERNETES_NAMESPACE_LABELS_AS_TAGS='{"app":"kube_app"}'

次の環境変数コンフィギュレーションを使用して、すべてのポッドラベルをタグとしてメトリクスに追加します。この例では、タグ名の前に <PREFIX>_ が付いています。

DD_KUBERNETES_NAMESPACE_LABELS_AS_TAGS='{"*":"<PREFIX>_%%label%%"}'

: カスタムメトリクスは請求に影響を与える可能性があります。詳細については、カスタムメトリクスの請求ページを参照してください。

タグとしてのコンテナ環境変数

Agent v7.32+ から、Agent はコンテナ環境変数を収集し、コンテナに対応するすべてのメトリクス、トレース、ログに関連付けるタグとして使用することができます。dockercontainerd の両方のコンテナがサポートされています。

指定された環境変数 <ENV_VAR> を抽出して、Datadog 内でタグキー <TAG_KEY> として変換するには、datadog-agent.yaml 内の Operator の DatadogAgent 構成に以下の構成を追加します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  #(...)
  override:
    nodeAgent:
      env:
        - name: DD_CONTAINER_ENV_AS_TAGS
          value: '{"<ENV_VAR>": "<TAG_KEY>"}'

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

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  #(...)
  override:
    nodeAgent:
      env:
        - name: DD_CONTAINER_ENV_AS_TAGS
          value: '{"app":"kube_app"}'

指定した環境変数 <ENV_VAR> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Helm の datadog-values.yaml ファイルに以下の構成を追加します。

datadog:
  env:
    - name: DD_CONTAINER_ENV_AS_TAGS
      value: '{"<ENV_VAR>": "<TAG_KEY>"}'

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

datadog:
  env:
    - name: DD_CONTAINER_ENV_AS_TAGS
      value: '{"app":"kube_app"}'

To extract a given environment variable <ENV_VAR> and transform it as a tag key <TAG_KEY> within Datadog, add the following environment variable to the Datadog Agent:

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

例:

DD_CONTAINER_ENV_AS_TAGS='{"app":"kube_app"}'

: カスタムメトリクスは請求に影響を与える可能性があります。詳細については、カスタムメトリクスの請求を参照してください。

タグとしてのコンテナラベル

Agent v7.33 以降、Agent はコンテナラベルを収集し、タグとして使用できます。Agent は、コンテナに関連するすべてのメトリクス、トレース、ログにタグを関連付けます。

Agent は dockercontainerd コンテナの両方のコンテナラベルからタグを生成することができます。containerd の場合、最小サポートバージョンは v1.5.6 です。それ以前のリリースではラベルが正しく伝搬されないためです。

指定されたコンテナラベル <CONTAINER_LABEL> を抽出して、Datadog 内でタグキー <TAG_KEY> として変換するには、datadog-agent.yaml 内の Operator の DatadogAgent 構成に以下の構成を追加します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  #(...)
  override:
    nodeAgent:
      env:
        - name: DD_CONTAINER_LABELS_AS_TAGS
          value: '{"<CONTAINER_LABEL>": "<TAG_KEY>"}'

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

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  #(...)
  override:
    nodeAgent:
      env:
        - name: DD_CONTAINER_LABELS_AS_TAGS
          value: '{"app":"kube_app"}'

指定したコンテナラベル <CONTAINER_LABEL> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Helm の datadog-values.yaml ファイルに以下の構成を追加します。

datadog:
  env:
    - name: DD_CONTAINER_LABELS_AS_TAGS
      value: '{"<CONTAINER_LABEL>": "<TAG_KEY>"}'

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

datadog:
  env:
    - name: DD_CONTAINER_LABELS_AS_TAGS
      value: '{"app":"kube_app"}'

To extract a given container label <CONTAINER_LABEL> and transform it to a tag key <TAG_KEY>, add the following environment variable to the Datadog Agent:

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

例:

DD_CONTAINER_LABELS_AS_TAGS='{"app":"kube_app"}'

: カスタムメトリクスは請求に影響を与える可能性があります。詳細については、カスタムメトリクスの請求を参照してください。

その他の参考資料

PREVIEWING: may/unit-testing