Kubernetes 태그 추출

Datadog Agent는 포드(또는 포드 내 개별 컨테이너)가 생성하는 메트릭, 트레이스 및 로그에 대해 레이블이나 주석에 따라 태그를 자동으로 할당할 수 있습니다.

기본 제공 태그

자동으로 할당되는 태그 목록은 Agent의 카디널리티 구성에 따라 달라집니다. 태그 카디널리티는 수집 전에 추가되며, 서로 다른 카디널리티 설정이 생성되는 메트릭 수에 영향을 주므로 청구에도 영향을 미칠 수 있습니다.

태그카디널리티소스요구 사항
container_id높음포드 상태해당 없음
display_container_name높음포드 상태해당 없음
pod_name오케스트레이터포드 메타데이터해당 없음
oshift_deployment오케스트레이터포드 주석 openshift.io/deployment.nameOpenShift 환경 및 포드 주석 필요
kube_ownerref_name오케스트레이터포드 소유자 참조포드에 소유자가 있어야 함
kube_job오케스트레이터포드 소유자 참조포드가 CronJob에 연결되어 있어야 함
kube_job낮음포드 소유자 참조포드가 Job에 연결되어 있어야 함
kube_replica_set낮음포드 소유자 참조포드가 ReplicaSet에 연결되어 있어야 함
kube_service낮음Kubernetes 서비스 검색포드가 Kubernetes 서비스 뒤에 있어야 함
kube_daemon_set낮음포드 소유자 참조포드가 DaemonSet에 연결되어 있어야 함
kube_container_name낮음포드 상태해당 없음
kube_namespace낮음포드 메타데이터해당 없음
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 또는 컨테이너 환경 변수(DD_ENV 또는 OTEL_RESOURCE_ATTRIBUTES)unified service tagging 활성화 필요
version낮음포드 레이블 tags.datadoghq.com/version 또는 컨테이너 환경 변수(DD_VERSION 또는 OTEL_RESOURCE_ATTRIBUTES)unified service tagging 활성화 필요
service낮음포드 레이블 tags.datadoghq.com/service 또는 컨테이너 환경 변수(DD_SERVICE, OTEL_RESOURCE_ATTRIBUTES, 또는 OTEL_SERVICE_NAME)unified service tagging 활성화 필요
pod_phase낮음포드 상태해당 없음
oshift_deployment_config낮음포드 주석 openshift.io/deployment-config.nameOpenShift 환경 및 포드 주석 필요
kube_ownerref_kind낮음포드 소유자 참조포드에 소유자가 있어야 함
kube_deployment낮음포드 소유자 참조포드가 Deployment에 연결되어 있어야 함
kube_argo_rollout낮음포드 소유자 참조포드가 Argo Rollout에 연결되어 있어야 함
kube_replication_controller낮음포드 소유자 참조포드가 Replication Controller에 연결되어 있어야 함
kube_stateful_set낮음포드 소유자 참조포드가 StatefulSet에 연결되어 있어야 함
persistentvolumeclaim낮음포드 사양포드에 PVC가 연결되어 있어야 함
kube_cronjob낮음포드 소유자 참조포드가 CronJob에 연결되어 있어야 함
image_name낮음포드 사양해당 없음
short_image낮음포드 사양해당 없음
image_tag낮음포드 사양해당 없음
eks_fargate_node낮음포드 사양EKS Fargate 환경
kube_runtime_class낮음포드 사양포드가 RuntimeClass에 연결되어 있어야 함
gpu_vendor낮음포드 사양컨테이너가 GPU 리소스에 연결되어 있어야 함
image_id낮음컨테이너 이미지 ID해당 없음
kube_autoscaler_kind낮음Kubernetes 오토스케일러 유형Kubernetes 오토스케일러 사용 필요
kube_priority_class낮음포드 Priority Class포드에 우선순위 클래스가 설정되어 있어야 함
kube_qos낮음포드 서비스 품질 클래스해당 없음

호스트 태그

Agent는 “호스트 태그"로 Kubernetes 환경 정보를 첨부할 수 있습니다.

태그카디널리티소스요구 사항
kube_cluster_name낮음DD_CLUSTER_NAME 환경 변수 또는 클라우드 공급자 통합DD_CLUSTER_NAME 환경 변수 또는 클라우드 공급자 통합 활성화
kube_node_role낮음노드 레이블 node-role.kubernetes.io/<role>노드 레이블이 존재해야 함
kube_node낮음 포드 사양의NodeName 필드
orch_cluster_id낮음오케스트레이터 클러스터 메타데이터오케스트레이터 환경
kube_distribution낮음노드 레이블 및 NodeSystemInfo

태그 Autodiscovery

Agent v6.10 이상부터 Agent는 포드 주석에서 태그를 자동으로 검색할 수 있습니다. 이를 통해 Agent는 포드 전체에서 발생하는 모든 데이터 또는 해당 포드 내 개별 컨테이너의 데이터에 태그를 연결할 수 있습니다.

컨테이너화된 환경에서는 Datadog에서 태그 통합에 도움이 되는 unified service tagging 사용을 권장합니다. unified service tagging은 Datadog env, service, version의 세 가지 표준 태그를 사용하여 Datadog 텔레메트리를 연결합니다. 환경에서 unified service tagging을 구성하는 방법은 unified service tagging 설명서를 참조하세요.

특정 포드에서 전송하고 Agent에서 수집한 모든 데이터에 <TAG_KEY>:<TAG_VALUE> 태그를 적용하려면 포드에 다음 주석을 추가하면 됩니다.

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

포드 내의 개별 컨테이너 <CONTAINER_NAME><TAG_KEY>:<TAG_VALUE> 태그를 적용하려면 다음 주석을 포드에서 사용하세요.

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

Agent v7.17 이상부터는 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 리소스의 레이블과 주석을 수집하고 이를 공통 구성에서 태그로 사용할 수 있습니다. Datadog에서는 Agent의 기본 태깅, Cluster Agent의 KSM 보고, 두 Agent의 Orchestrator Explorer 보고 간 일관성을 위해 다음 옵션을 사용하는 것을 권장합니다.

  • kubernetesResourcesLabelsAsTags
  • kubernetesResourcesAnnotationsAsTags

이 옵션은 기존 Agent 옵션인 podLabelsAsTags, nodeLabelsAsTags, namespaceLabelsAsTags 및 모든 KSM 구성 재정의 대신 사용해야 합니다.

이 구성은 메타데이터를 추출할 리소스 유형을 참조합니다. 각 리소스 유형은 resourceType.apiGroup 형식으로 지정해야 합니다. 여기서 resourceType은 리소스의 복수형 이름입니다. API 그룹이 비어 있는 리소스(예: 포드, 노드)는 resourceType 이름만으로 지정할 수 있습니다.

예를 들어, kubectl api-resources를 실행하여 정보를 확인할 수 있습니다.

이름API 버전Datadog 리소스 구성
podsv1pods
nodesv1nodes
namespacesv1namespaces
deploymentsapps/v1deployments.apps
rolesrbac.authorization.k8s.io/v1roles.rbac.authorization.k8s.io

참고:

  • 태그는 워크로드와 하위 리소스 간에 상속되지 않습니다. 예를 들어, 배포에 설정된 레이블이 그 하위 포드의 로그에 자동으로 적용되지 않습니다. 포트 데이터를 태깅하려면 레이블 추출을 포드에서 직접 구성해야 합니다.
  • 태그는 네임스페이스에서 해당 네임스페이스 내부의 포드 및 컨테이너로 실제로 상속됩니다.
  • KSM Metrics의 태그 추출 규칙에서 와일드카드를 사용하려면 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>

예를 들어, 노드, 포드, 배포에서 리소스 레이블을 추출하려면 다음과 같이 설정합니다.

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>

예를 들어, 노드, 포드, 배포에서 리소스 레이블을 추출하려면 다음과 같이 설정합니다.

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

예를 들어, 노드, 포드, 배포에서 리소스 레이블을 추출하려면 다음과 같이 설정합니다.

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

참고: Custom Metrics는 청구에 영향을 줄 수 있습니다. 자세한 내용은 Custom Metrics Billing 페이지를 참조하세요.

레거시 구성과 병합하기

이 구성 옵션은 podLabelsAsTags, namespaceLabelsAsTagsnodeLabelsAsTags에 설정된 구성과 병합됩니다. 충돌이 발생할 경우, 구성 병합 시 kubernetesResourcesLabelsAsTags가 우선 적용됩니다.

예를 들어, 다음과 같은 구성이 있는 경우:

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

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

다음 매핑을 사용하여 포드 레이블에서 태그를 추출합니다.

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>

예를 들어, 노드, 포드 및 배포에서 리소스 주석을 추출하려면:

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>

예를 들어, 노드, 포드 및 배포에서 리소스 주석을 추출하려면:

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

예를 들어, 노드, 포드 및 배포에서 리소스 주석을 추출하려면:

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

참고: Custom Metrics는 청구에 영향을 줄 수 있습니다. 자세한 내용은 Custom Metrics Billing 페이지를 참조하세요.

이 구성 옵션은 podAnnotationsAsTags에 설정된 다른 구성과 병합됩니다. 충돌이 발생할 경우, 구성 병합 시 kubernetesResourcesAnnotationsAsTags가 우선 적용됩니다.

예를 들어, 다음과 같은 구성이 있는 경우:

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

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

다음 매핑을 사용하여 포드 주석에서 태그를 추출합니다.

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

노드 레이블을 태그로 사용하기

Agent 버전 7.58.0 이상에서는 Kubernetes 리소스 레이블을 태그로 사용하여 노드 레이블을 태그로 구성하는 것이 좋습니다.

Agent v6.0 이상부터는 지정된 노드의 레이블을 수집하여 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

참고: Custom Metrics는 청구에 영향을 줄 수 있습니다. 자세한 내용은 Custom Metrics Billing 페이지를 참조하세요.

포드 레이블을 태그로 사용하기

Agent 버전 7.58.0 이상에서는 Kubernetes 리소스 레이블을 태그로 사용하여 포드 레이블을 태그로 구성하는 것이 좋습니다.

Agent v6.0 이상부터는 지정된 포드의 레이블을 수집하여 해당 포드에서 내보내는 모든 메트릭, 트레이스 및 로그에 붙일 태그로 사용할 수 있습니다.

지정된 포드 레이블 <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 이상에서는 다음 환경 변수 구성을 사용하여 모든 포드 레이블을 메트릭에 태그로 추가합니다. 이 예제에서는 태그 이름 앞에 <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_LABEL>을 추출하여 Datadog 내에서 태그 키 <TAG_KEY>로 변환하려면 Helm datadog-values.yaml 파일에 다음 구성을 추가합니다.

datadog:
  podLabelsAsTags:
    <POD_LABEL>: <TAG_KEY>

예를 들어 다음을 설정할 수 있습니다.

datadog:
  podLabelsAsTags:
    app: kube_app

Agent v7.24.0 이상에서는 다음 환경 변수 구성을 사용하여 모든 포드 레이블을 메트릭에 태그로 추가합니다. 단, KSM(kubernetes_state.*)에서 수집된 레이블은 제외됩니다. 이 예제에서는 태그 이름 앞에 <PREFIX>_가 접두사로 붙습니다.

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

지정된 포드 레이블 <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 이상에서는 다음 환경 변수 구성을 사용하여 모든 포드 레이블을 메트릭에 태그로 추가합니다. 단, KSM(kubernetes_state.*)에서 수집된 레이블은 제외됩니다. 이 예제에서는 태그 이름 앞에 <PREFIX>_가 접두사로 붙습니다.

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

참고: Custom Metrics는 청구에 영향을 줄 수 있습니다. 자세한 내용은 Custom Metrics Billing 페이지를 참조하세요.

포드 주석을 태그로 사용하기

Agent 버전 7.58.0 이상에서는 Kubernetes 리소스 레이블을 태그로 사용하여 포드 주석을 태그로 구성하는 것이 좋습니다.

Agent v6.0 이상부터는 지정된 포드에 대한 주석을 수집하여 해당 포드에서 내보내는 모든 메트릭, 트레이스 및 로그에 붙일 태그로 사용할 수 있습니다.

지정된 포드 주석 <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 이상에서는 다음 환경 변수 구성을 사용하여 모든 포드 주석을 메트릭에 태그로 추가합니다. 단, 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_ANNOTATION>을 추출하여 Datadog 내에서 태그 키 <TAG_KEY>로 변환하려면 Helm datadog-values.yaml 파일에 다음 구성을 추가합니다.

datadog:
  podAnnotationsAsTags:
    <POD_ANNOTATION>: <TAG_KEY>

예를 들어 다음을 설정할 수 있습니다.

datadog:
  podAnnotationsAsTags:
    app: kube_app

Agent v7.24.0 이상에서는 다음 환경 변수 구성을 사용하여 모든 포드 주석을 메트릭에 태그로 추가합니다. 단, KSM(kubernetes_state.*)에서 수집된 주석은 제외됩니다. 이 예제에서는 태그 이름 앞에 <PREFIX>_가 접두사로 붙습니다.

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

지정된 포드 주석 <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 이상에서는 다음 환경 변수 구성을 사용하여 모든 포드 주석을 메트릭에 태그로 추가합니다. 단, KSM(kubernetes_state.*)에서 수집된 주석은 제외됩니다. 이 예제에서는 태그 이름 앞에 <PREFIX>_가 접두사로 붙습니다.

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

참고: Custom Metrics는 청구에 영향을 줄 수 있습니다. 자세한 내용은 Custom Metrics Billing 페이지를 참조하세요.

네임스페이스 레이블을 태그로 사용하기

Agent 버전 7.58.0 이상에서는 Kubernetes 리소스 레이블을 태그로 사용하여 네임스페이스 레이블을 태그로 구성하는 것이 좋습니다.

Agent v7.55.0 이상부터는 지정된 네임스페이스에 대한 레이블을 수집하여 해당 네임스페이스의 모든 포드에서 내보내는 모든 메트릭, 트레이스 및 로그에 붙일 태그로 사용할 수 있습니다.

지정된 네임스페이스 레이블 <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%%"}'

참고: Custom Metrics는 청구에 영향을 줄 수 있습니다. 자세한 내용은 Custom Metrics Billing 페이지를 참조하세요.

컨테이너 환경 변수를 태그로 사용하기

Agent v7.32 이상부터는 컨테이너 환경 변수를 수집하여 컨테이너에 해당하는 모든 메트릭, 트레이스 및 로그에 붙일 태그로 사용할 수 있습니다. dockercontainerd 컨테이너 모두 지원됩니다.

지정된 환경 변수 <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"}'

참고: Custom Metrics는 청구에 영향을 줄 수 있습니다. 자세한 내용은 Custom Metrics Billing을 참조하세요.

컨테이너 레이블을 태그로 사용하기

Agent v7.33 이상부터는 컨테이너 레이블을 수집하여 태그로 사용할 수 있습니다. 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>을 추출하여 태그 키 <TAG_KEY>로 변환하려면 Datadog Agent에 다음 환경 변수를 추가합니다.

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

예:

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

참고: Custom Metrics는 청구에 영향을 줄 수 있습니다. 자세한 내용은 Custom Metrics Billing을 참조하세요.

추가 자료