Agent は、タグを作成し、ラベルまたはアノテーションに基づいてポッドが発行するすべてのメトリクス、トレース、ログに割り当てることができます。

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

すぐに使えるタグ

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

タグ粒度ソース要件
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%%

特定のノードラベル <NODE_LABEL> を抽出し、Datadog 内のタグキー <TAG_KEY> として変換するには、次の環境変数を 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%%

特定のポッドラベル <POD_LABEL> を抽出し、Datadog 内のタグキー <TAG_KEY> として変換するには、次の環境変数を 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_LABEL>: <TAG_KEY>

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

datadog:
  podAnnotationsAsTags:
    app: kube_app

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

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

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

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

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

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%%

特定のネームスペースラベル <NAMESPACE_LABEL> を抽出し、Datadog 内のタグキー <TAG_KEY> として変換するには、次の環境変数を 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"}'

特定の環境変数 <ENV_VAR> を抽出し、Datadog 内のタグキー <TAG_KEY> として変換するには、次の環境変数を 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"}'

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

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

例:

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

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

その他の参考資料