Datadog Agent は、Pod (または Pod 内の個々のコンテナ) から発生するメトリクス、トレース、ログに対して、ラベルやアノテーションに基づいて自動的にタグを割り当てることができます。

すぐに使えるタグ

自動的に割り当てられるタグのリストは、Agent の カーディナリティ構成 に依存します。タグのカーディナリティ はデータ取り込み前に追加され、課金に影響を与えることがあります。これは、カーディナリティ設定によって出力されるメトリクスの数が変わるためです。

タグカーディナリティソース要件
container_idPod のステータス該当なし
display_container_namePod のステータス該当なし
pod_nameオーケストレーターPod のメタデータ該当なし
oshift_deploymentオーケストレーターPod のアノテーション openshift.io/deployment.nameOpenShift 環境で、Pod アノテーションが存在すること
kube_ownerref_nameオーケストレーターPod の ownerrefPod にオーナーが存在すること
kube_jobオーケストレーターPod の ownerrefPod が CronJob に紐づいていること
kube_jobPod の ownerrefPod がジョブに紐づいていること
kube_replica_setPod の ownerrefPod がレプリカセットに紐づいていること
kube_serviceKubernetes サービスディスカバリーPod は Kubernetes サービスの背後にあること
kube_daemon_setPod の ownerrefPod が DaemonSet に紐づいていること
kube_container_namePod のステータス該当なし
kube_namespacePod のメタデータ該当なし
kube_app_namePod ラベル app.kubernetes.io/namePod ラベルが存在すること
kube_app_instancePod ラベル app.kubernetes.io/instancePod ラベルが存在すること
kube_app_versionPod ラベル app.kubernetes.io/versionPod ラベルが存在すること
kube_app_componentPod ラベル app.kubernetes.io/componentPod ラベルが存在すること
kube_app_part_ofPod ラベル app.kubernetes.io/part-ofPod ラベルが存在すること
kube_app_managed_byPod ラベル app.kubernetes.io/managed-byPod ラベルが存在すること
envPod ラベル tags.datadoghq.com/env またはコンテナ環境変数 (DD_ENV または OTEL_RESOURCE_ATTRIBUTES)unified service tagging が有効であること
versionPod ラベル tags.datadoghq.com/version またはコンテナ環境変数 (DD_VERSION または OTEL_RESOURCE_ATTRIBUTES)unified service tagging が有効であること
servicePod ラベル tags.datadoghq.com/service、コンテナ環境変数 (DD_SERVICEOTEL_RESOURCE_ATTRIBUTES、または OTEL_SERVICE_NAME)unified service tagging が有効であること
pod_phasePod のステータス該当なし
oshift_deployment_configPod アノテーション openshift.io/deployment-config.nameOpenShift 環境であり、Pod アノテーションが存在すること
kube_ownerref_kindPod の ownerrefPod にオーナーが存在すること
kube_deploymentPod の ownerrefPod がデプロイメントに紐づいていること
kube_argo_rolloutPod の ownerrefPod が Argo Rollout に紐づいていること
kube_replication_controllerPod の ownerrefPod がレプリケーションコントローラーに紐づいていること
kube_stateful_setPod の ownerrefPod が statefulset に紐づいていること
persistentvolumeclaimPod 仕様PVC が Pod に紐づいていること
kube_cronjobPod の ownerrefPod が CronJob に紐づいていること
image_namePod の仕様該当なし
short_imagePod の仕様該当なし
image_tagPod の仕様該当なし
eks_fargate_nodePod の仕様EKS Fargate 環境
kube_runtime_classPod の仕様Pod がランタイムクラスに紐づいていること
gpu_vendorPod の仕様コンテナが GPU リソースに紐づいていること
image_idコンテナイメージ ID該当なし
kube_autoscaler_kindKubernetes オートスケーラータイプKubernetes オートスケーラーを使用すること
kube_priority_classPod PriorityClassPod に優先度クラスが設定されていること
kube_qosPod の Quality of Service (QoS) クラス該当なし

ホストタグ

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

タグカーディナリティソース要件
kube_cluster_nameDD_CLUSTER_NAME環境変数またはクラウドプロバイダー統合DD_CLUSTER_NAME環境変数またはクラウドプロバイダー統合が有効であること
kube_node_roleノードラベル node-role.kubernetes.io/<role>ノードラベルが存在すること
kube_nodeNodeNamePod の仕様内のフィールド
orch_cluster_idオーケストレーターのクラスターメタデータオーケストレーター環境
kube_distributionノードラベルおよび NodeSystemInfo

タグ Autodiscovery

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

コンテナ化された環境におけるベストプラクティスとして、Datadog はタグを統一するために unified service tagging の使用を推奨しています。unified service tagging は、envservice、および version の 3 つの標準タグを使用して Datadog テレメトリを結び付けます。unified service tagging で環境を構成する方法については、専用の unified service tagging ドキュメントを参照してください。

特定の Pod から出力され、Agent によって収集されたすべてのデータに <TAG_KEY>:<TAG_VALUE> タグを適用するには、Pod に次のアノテーションを追加します。

annotations:
  ad.datadoghq.com/tags: '{"<TAG_KEY>": "<TAG_VALUE>","<TAG_KEY_1>": "<TAG_VALUE_1>"}'

Pod 内の個々のコンテナ <CONTAINER_NAME><TAG_KEY>:<TAG_VALUE> タグを適用する場合は、Pod に以下のアノテーションを追加します。

annotations:
  ad.datadoghq.com/<CONTAINER_NAME>.tags: '{"<TAG_KEY>": "<TAG_VALUE>","<TAG_KEY_1>": "<TAG_VALUE_1>"}'

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

com.datadoghq.ad.tags: '["<TAG_KEY>:TAG_VALUE", "<TAG_KEY_1>:<TAG_VALUE_1>"]'

Agent v7.77 以降、タグアノテーションは、ランタイムメタデータに基づく動的タグ付けのための Autodiscovery テンプレート変数 をサポートします。%%env_<VAR>%% を除いて、すべてのテンプレート変数がサポートされています。

annotations:
  ad.datadoghq.com/tags: '{"pod_ip":"%%host%%","pod_name":"%%kube_pod_name%%","namespace":"%%kube_namespace%%"}'
  ad.datadoghq.com/nginx.tags: '{"container_port":"%%port_80%%"}'

タグの抽出

バージョン 7.64 以降、Agent と Cluster Agent は、Kubernetes リソースからラベルとアノテーションを収集し、共通の設定からタグとして使用するように構成できます。Agent のコアタグ付け、Cluster Agent の KSM レポート、および両エージェントの Orchestrator Explorer のレポート全体で一貫した報告を確保するために、Datadog では、次のオプションを使用することを推奨します。

  • kubernetesResourcesLabelsAsTags
  • kubernetesResourcesAnnotationsAsTags

これらのオプションは、従来の Agent オプション podLabelsAsTagsnodeLabelsAsTagsnamespaceLabelsAsTags および任意の KSM 構成オーバーライドの代わりに使用する必要があります。

これらの構成は、メタデータを抽出するオブジェクトのリソースタイプを参照します。各リソースタイプは、resourceType.apiGroup 形式で指定する必要があります。ここで resourceType はリソースの複数形の名前です。空の API グループのリソース (例: Pod やノード) は、resourceType 名のみを使用して指定できます。

たとえば、kubectl api-resources を実行してこの情報を取得します。

名前API バージョンDatadog リソース構成
podsv1pods
nodesv1nodes
namespacesv1namespaces
deploymentsapps/v1deployments.apps
rolesrbac.authorization.k8s.io/v1roles.rbac.authorization.k8s.io

注:

  • タグは、ワークロードと子リソース間でカスケードしません。たとえば、デプロイメントのラベルは、その子 Pod のログに自動的に適用されるわけではありません。Pod データにタグを付与するには、Pod でラベル抽出を直接設定してください。
  • タグは、ネームスペースから Pod およびその内部のコンテナにカスケードします
  • KSM メトリクスのタグ抽出ルールでワイルドカードを使用するには、Datadog Agent 7.73 以上を使用してください。

Kubernetes リソースラベルをタグとして使用する

このオプションは、Kubernetes リソースの特定のラベルを抽出し、それを Datadog タグとして送信するために使用します。

特定のリソースラベル <LABEL> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Operator の datadog-agent.yaml にある DatadogAgent 構成に次の構成を追加してください。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    kubernetesResourcesLabelsAsTags:
      <RESOURCE>:
        <LABEL>: <TAG_KEY>

たとえば、ノード、Pod、およびデプロイメントからリソースラベルを抽出するには以下を使用します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    kubernetesResourcesLabelsAsTags:
      nodes:
        kubernetes.io/arch: arch
      pods:
        role: pod_role
      deployments.apps:
        team: kube_team

特定のリソースラベル <LABEL> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Helm の datadog-values.yaml ファイルに次の構成を追加してください。

datadog:
  kubernetesResourcesLabelsAsTags:
    <RESOURCE>:
      <LABEL>: <TAG_KEY>

たとえば、ノード、Pod、およびデプロイメントからリソースラベルを抽出するには以下を使用します。

datadog:
  kubernetesResourcesLabelsAsTags:
    nodes:
      kubernetes.io/arch: arch
    pods:
      role: pod_role
    deployments.apps:
      team: kube_team

特定のリソースラベル <LABEL> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Agent と Cluster Agent の両方のコンテナに次の環境変数を追加してください。

- name: DD_KUBERNETES_RESOURCES_LABELS_AS_TAGS
  value: '{"<RESOURCE>":{"<LABEL>":"<TAG_KEY>"}}'

たとえば、ノード、Pod、およびデプロイメントからリソースラベルを抽出するには以下を使用します。

- name: DD_KUBERNETES_RESOURCES_LABELS_AS_TAGS
  value: '{"deployments.apps":{"team":"kube_team"},"nodes":{"kubernetes.io/arch":"arch"},"pods":{"role":"pod_role"}}'

Agent 7.73.0 以上では、すべてのリソースラベルをメトリクスのタグとして追加するために、次の設定を使用します。この例では、タグ名に <PREFIX>_ のプレフィックスが付いています。

    #(...)
    kubernetesResourcesLabelsAsTags:
      pods:
        "*": <PREFIX>_%%label%%

: カスタムメトリクスによって課金が影響を受ける場合があります。詳細については、カスタムメトリクスの課金ページ を参照してください。

従来の構成との統合

この構成オプションは、podLabelsAsTagsnamespaceLabelsAsTags、およびnodeLabelsAsTagsに設定された他の構成と統合されます。競合が発生した場合、kubernetesResourcesLabelsAsTagsが構成の統合時に優先されます。

たとえば、次のような設定がある場合

datadog:
  kubernetesResourcesLabelsAsTags:
    pods:
      label-1: tag-a
      label-2: tag-b

  podLabelsAsTags:
    label-2: legacy-tag-c
    label-3: legacy-tag-d

Pod ラベルからタグを抽出するために以下のマッピングが使用されます。

label-1: tag-a
label-2: tag-b
label-3: legacy-tag-d

Kubernetes リソースアノテーションをタグとして使用する

このオプションは、Kubernetes リソースから指定されたアノテーションを抽出し、Datadog タグとして送信します。

特定のリソースアノテーション <ANNOTATION> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Operator の datadog-agent.yaml にある DatadogAgent 構成に次の構成を追加してください。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    kubernetesResourcesAnnotationsAsTags:
      <RESOURCE>:
        <ANNOTATION>: <TAG_KEY>

たとえば、ノード、Pod、およびデプロイメントからリソースアノテーションを抽出するには以下を使用します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    kubernetesResourcesAnnotationsAsTags:
      nodes:
        kubernetes.io/arch: arch
      pods:
        role: pod_role
      deployments.apps:
        team: kube_team

特定のリソースアノテーション <ANNOTATION> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Helm の datadog-values.yaml ファイルに次の構成を追加してください。

datadog:
  kubernetesResourcesAnnotationsAsTags:
    <RESOURCE>:
      <ANNOTATION>: <TAG_KEY>

たとえば、ノード、Pod、およびデプロイメントからリソースアノテーションを抽出するには以下を使用します。

datadog:
  kubernetesResourcesAnnotationsAsTags:
    nodes:
      kubernetes.io/arch: arch
    pods:
      role: pod_role
    deployments.apps:
      team: kube_team

特定のリソースアノテーション <ANNOTATION> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Agent と Cluster Agent のの両方のコンテナに次の環境変数を追加してください。

- name: DD_KUBERNETES_RESOURCES_ANNOTATIONS_AS_TAGS
  value: '{"<RESOURCE>":{"<ANNOTATION>":"<TAG_KEY>"}}'

たとえば、ノード、Pod、およびデプロイメントからリソースアノテーションを抽出するには以下を使用します。

- name: DD_KUBERNETES_RESOURCES_ANNOTATIONS_AS_TAGS
  value: '{"deployments.apps":{"team":"kube_team"},"nodes":{"kubernetes.io/arch":"arch"},"pods":{"role":"pod_role"}}'

Agent 7.73.0 以降では、次の構成を使用して、すべてのリソースアノテーションをメトリクスのタグとして追加します。この例では、タグ名に <PREFIX>_ のプレフィックスが付いています。

    #(...)
    kubernetesResourcesAnnotationsAsTags:
      pods:
        "*": <PREFIX>_%%annotation%%

: カスタムメトリクスによって課金が影響を受ける場合があります。詳細については、カスタムメトリクスの課金ページ を参照してください。

この構成オプションは、podAnnotationsAsTags に設定された他の構成と統合されます。競合が発生した場合、kubernetesResourcesAnnotationsAsTags が構成の統合時に優先されます。

たとえば、次のような設定がある場合

datadog:
  kubernetesResourcesAnnotationsAsTags:
    pods:
      annotation-1: tag-a
      annotation-2: tag-b

  podAnnotationsAsTags:
    annotation-2: legacy-tag-c
    annotation-3: legacy-tag-d

Pod アノテーションからタグを抽出するために次のマッピングが使用されます。

annotation-1: tag-a
annotation-2: tag-b
annotation-3: legacy-tag-d

ノードラベルをタグとして使用する

Agent バージョン 7.58.0 以降を使用している場合、ノードラベルをタグとして構成するには、Kubernetes リソースラベルをタグとして使用することをお勧めします。

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

特定のノードラベル <NODE_LABEL> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Operator の datadog-agent.yaml にある 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%% # Note: wildcards do not work for KSM metrics before version 7.73

特定のノードラベル <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%% # Note: wildcards do not work for KSM metrics before version 7.73

特定のノードラベル <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%%"}' # Note: wildcards do not work for KSM metrics before version 7.73

: カスタムメトリクスによって課金が影響を受ける場合があります。詳細については、カスタムメトリクスの課金ページ を参照してください。

Pod ラベルをタグとして使用する

Agent バージョン 7.58.0 以降を使用している場合、Pod ラベルをタグとして構成するには、Kubernetes リソースラベルをタグとして使用することをお勧めします。

Agent v6.0 以降、Agent は特定の Pod のラベルを収集し、この Pod が発行するすべてのメトリクス、トレース、ログにアタッチするタグとして使用できます。

特定の Pod ラベル <POD_LABEL> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Operator の datadog-agent.yaml にある 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 以降の場合、次の環境変数構成を使用して、すべての Pod ラベルをタグとしてメトリクスに追加してください。この例では、タグ名には <PREFIX>_ のプレフィックスが付いています。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podLabelsAsTags:
      "*": <PREFIX>_%%label%% # Note: wildcards do not work for KSM metrics before version 7.73

特定の Pod ラベル <POD_LABEL> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Helm の datadog-values.yaml ファイルに次の構成を追加してください。

datadog:
  podLabelsAsTags:
    <POD_LABEL>: <TAG_KEY>

たとえば、次を設定できます。

datadog:
  podLabelsAsTags:
    app: kube_app

Agent v7.24.0 以降の場合、すべての Pod ラベルをタグとしてメトリクスに追加するには、次の環境変数構成を使用してください。ただし、KSM (kubernetes_state.*) 由来のメトリクスは除外します。この例では、タグ名に <PREFIX>_ のプレフィックスが付いています。

datadog:
  podLabelsAsTags:
    "*": <PREFIX>_%%label%% # Note: wildcards do not work for KSM metrics

特定の Pod ラベル <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 v7.24.0 以降の場合、すべての Pod ラベルをタグとしてメトリクスに追加するには、次の環境変数構成を使用してください。ただし、KSM (kubernetes_state.*) 由来のメトリクスは除外します。この例では、タグ名に <PREFIX>_ のプレフィックスが付いています。

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

: カスタムメトリクスによって課金が影響を受ける場合があります。詳細については、カスタムメトリクスの課金ページ を参照してください。

Pod アノテーションをタグとして使用する

Agent バージョン 7.58.0 以降の場合、Pod アノテーションをタグとして構成するには、Kubernetes リソースラベルをタグとして使用することをお勧めします。

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

特定の Pod アノテーション <POD_ANNOTATION> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Operator の datadog-agent.yaml にある 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 以降の場合、すべての Pod アノテーションをタグとしてメトリクスに追加するには、次の環境変数構成を使用してください。ただし、KSM (kubernetes_state.*) 由来のメトリクスは除外します。この例では、タグ名に <PREFIX>_ のプレフィックスが付いています。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podAnnotationsAsTags:
      "*": <PREFIX>_%%annotation%% # Note: wildcards do not work for KSM metrics

特定の Pod アノテーション <POD_ANNOTATION> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Helm の datadog-values.yaml ファイルに次の構成を追加してください。

datadog:
  podAnnotationsAsTags:
    <POD_ANNOTATION>: <TAG_KEY>

たとえば、次を設定できます。

datadog:
  podAnnotationsAsTags:
    app: kube_app

Agent v7.24.0 以降の場合、すべての Pod アノテーションをタグとしてメトリクスに追加するには、次の環境変数構成を使用してください。ただし、KSM (kubernetes_state.*) 由来のメトリクスは除外します。この例では、タグ名に <PREFIX>_ のプレフィックスが付いています。

datadog:
  podAnnotationsAsTags:
    "*": <PREFIX>_%%annotation%% # Note: wildcards do not work for KSM metrics

特定の Pod アノテーション <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 以降の場合、すべての Pod アノテーションをタグとしてメトリクスに追加するには、次の環境変数構成を使用してください。ただし、KSM (kubernetes_state.*) 由来のメトリクスは除外します。この例では、タグ名に <PREFIX>_ のプレフィックスが付いています。

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

: カスタムメトリクスによって課金が影響を受ける場合があります。詳細については、カスタムメトリクスの課金ページ を参照してください。

ネームスペースラベルをタグとして使用する

Agent バージョン 7.58.0 以降の場合、ネームスペースのラベルをタグとして構成するには、Kubernetes リソースラベルをタグとして使用することをお勧めします。

Agent 7.55.0 以降、Agent は特定のネームスペースのラベルを収集し、このネームスペースのすべての Pod が発行するすべてのメトリクス、トレース、ログにアタッチするタグとして使用できます。

特定のネームスペースラベル <NAMESPACE_LABEL> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Operator の datadog-agent.yaml にある 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 以降の場合、すべてのネームスペースラベルをタグとしてメトリクスに追加するには、次の環境変数構成を使用してください。ただし、KSM (kubernetes_state.*) 由来のメトリクスは除外します。この例では、タグ名に <PREFIX>_ のプレフィックスが付いています。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    namespaceLabelsAsTags:
      "*": <PREFIX>_%%label%% # Note: wildcards do not work for KSM metrics

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

datadog:
  namespaceLabelsAsTags:
    <NAMESPACE_LABEL>: <TAG_KEY>

たとえば、次を設定できます。

datadog:
  namespaceLabelsAsTags:
    app: kube_app

Agent v7.24.0 以降の場合、すべてのネームスペースラベルをタグとしてメトリクスに追加するには、次の環境変数構成を使用してください。ただし、KSM (kubernetes_state.*) 由来のメトリクスは除外します。この例では、タグ名に <PREFIX>_ のプレフィックスが付いています。

datadog:
  namespaceLabelsAsTags:
    "*": <PREFIX>_%%label%% # Note: wildcards do not work for KSM metrics

特定のネームスペースラベル <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"}'

Agent v7.24.0 以降の場合、すべてのネームスペースラベルをタグとしてメトリクスに追加するには、次の環境変数構成を使用してください。ただし、KSM (kubernetes_state.*) 由来のメトリクスは除外します。この例では、タグ名に <PREFIX>_ のプレフィックスが付いています。

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

: カスタムメトリクスによって課金が影響を受ける場合があります。詳細については、カスタムメトリクスの課金ページ を参照してください。

コンテナ環境変数をタグとして使用する

Agent v7.32 以降の Agent はコンテナ環境変数を収集し、コンテナに対応するすべてのメトリクス、トレース、ログにアタッチするタグとして使用できます。docker および containerd の両方のコンテナがサポートされています。

特定の環境変数 <ENV_VAR> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Operator の datadog-agent.yaml にある 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 はコンテナラベルを収集し、タグとして使用することができます。Datadog Agent は、コンテナに関連付けられたすべてのメトリクス、トレース、ログにタグを付けます。

Agent は、dockercontainerd の両方のコンテナに対してコンテナラベルからタグを生成できます。containerd の場合、最小サポートバージョンは v1.5.6 です。それより前のリリースではラベルが正しく伝播されません。

特定のコンテナラベル <CONTAINER_LABEL> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Operator の datadog-agent.yaml にある 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> を抽出し、Datadog 内でタグキー <TAG_KEY> として変換するには、Datadog Agent に次の環境変数を追加してください。

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

たとえば、以下のとおりです。

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

: カスタムメトリクスによって課金が影響を受ける場合があります。詳細については、カスタムメトリクスの課金 を参照してください。

参考資料