Kubernetes タグ抽出

Kubernetes タグ抽出

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.name OpenShift 環境およびポッドアノテーションが必要
kube_ownerref_name オーケストレーター ポッド ownerref ポッドにオーナーが必要
kube_job オーケストレーター ポッド ownerref ポッドはジョブにアタッチされていることが必要
kube_replica_set オーケストレーター ポッド ownerref ポッドはレプリカセットにアタッチされていることが必要
kube_service オーケストレーター Kubernetes サービスディスカバリー ポッドは 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.name OpenShift 環境およびポッドアノテーションが必要
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

ホストタグ

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

タグ 粒度 ソース 要件
kube_cluster_name DD_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 の datadog.yaml ファイルを変更することなく、コンテナによって発行されたすべてのデータにカスタムタグを関連付けることができます。

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

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

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

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

DD_KUBERNETES_NODE_LABELS_AS_TAGS='{"<ノードラベル>": "<タグキー>"}'

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

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

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

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

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

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

kubernetes_node_labels_as_tags:
  <ノードラベル>: <タグキー>

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

kubernetes_node_labels_as_tags:
  app: kube_app

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

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

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

DD_KUBERNETES_POD_LABELS_AS_TAGS='{"<ポッドラベル>": "<タグキー>"}'

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

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

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

DD_KUBERNETES_POD_LABELS_AS_TAGS='{"*":"<プレフィックス>_%%label%%"}'

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

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

kubernetes_pod_labels_as_tags:
  <ポッドラベル>: <タグキー>

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

kubernetes_pod_labels_as_tags:
  app: kube_app

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

kubernetes_pod_labels_as_tags:
  *: <プレフィックス>_%%label%%

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

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

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

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

DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGS='{"<ポッドアノテーション>": "<タグキー>"}'

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

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

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

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

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

特定のポッドアノテーション <ポッドアノテーション> を抽出し、Datadog 内のタグキー <タグキー> として変換するには、Agent datadog.yaml 構成ファイルに次の構成ブロックを追加します。

kubernetes_pod_annotations_as_tags:
  <ポッドアノテーション>: <タグキー>

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

kubernetes_pod_annotations_as_tags:
  app: kube_app

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

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

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

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

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

kubernetes_namespace_labels_as_tags:
  <NAMESPACE_LABEL>: <TAG_KEY>

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

kubernetes_namespace_labels_as_tags:
  app: kube_app

その他の参考資料