Kubernetes タグ抽出
Dash が新機能を発表!インシデントマネジメント、Continuous Profiler など多数の機能が追加されました! Dash イベントで発表された新機能!

Kubernetes タグ抽出

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

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

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

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

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

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

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

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

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"}'

特定のノードラベル <ノードラベル> を抽出し、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%%

: この方法を使用すると、組織のメトリクス数が増加し、請求に影響する可能性があります。

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

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

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

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

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

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

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

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

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

kubernetes_pod_annotations_as_tags:
  app: kube_app

その他の参考資料