Datadog 태깅(Tagging)

[!tldr] 한줄 요약 태그는 key:value 형태로 Datadog의 모든 데이터에 차원을 부여하는 메커니즘으로, 호스트 태그가 메트릭·로그·트레이스에 자동 상속되어 필터링·집계·비교를 가능하게 한다.

핵심 내용

태그 형식

key:value

태그 할당 방법 5가지

방법설정 위치적용 범위
Agent 설정datadog.yamltags:호스트의 모든 데이터
통합(Integration) 설정개별 Check의 YAML특정 통합 데이터만
환경 변수DD_TAGS, DD_ENV해당 프로세스
Kubernetes 라벨Pod/Deployment 라벨해당 컨테이너
Datadog UI인프라 맵에서 직접 추가해당 호스트

태그 상속(Tag Inheritance)

Datadog의 강력한 기능 중 하나. 호스트에 붙인 태그가 해당 호스트에서 발생하는 모든 메트릭, 로그, 트레이스에 자동 상속된다.

호스트 태그: env:production, team:backend
    │
    ├── 메트릭  → env:production, team:backend 자동 포함
    ├── 로그    → env:production, team:backend 자동 포함
    └── 트레이스 → env:production, team:backend 자동 포함

예약 태그 (Reserved Tags)

Datadog이 특별하게 취급하는 태그들:

태그용도예시
host호스트명 (자동 할당)host:web-server-01
device디바이스명 (자동 할당)device:eth0
source로그 소스source:nginx
env환경 구분env:production
service서비스명service:checkout
version배포 버전version:1.2.3

이 중 env, service, version통합 서비스 태깅(Unified Service Tagging)의 3대 표준 태그다.

태그 네이밍 베스트 프랙티스

좋은 예:

나쁜 예:

[!warning] 핵심 원칙 한 태그에 한 차원만 표현한다. 환경은 env:, 팀은 team:, 서비스는 service:로 분리한다.

태그 활용처

예시

# datadog.yaml - Agent 수준 태그 설정
tags:
  - env:production
  - service:web-api
  - team:backend
  - region:ap-northeast-2
# Kubernetes Deployment - 라벨 기반 태그 할당
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    tags.datadoghq.com/env: production
    tags.datadoghq.com/service: checkout
    tags.datadoghq.com/version: "1.2.3"
spec:
  template:
    metadata:
      labels:
        tags.datadoghq.com/env: production
        tags.datadoghq.com/service: checkout
        tags.datadoghq.com/version: "1.2.3"
    spec:
      containers:
        - name: checkout
          env:
            - name: DD_ENV
              valueFrom:
                fieldRef:
                  fieldPath: metadata.labels['tags.datadoghq.com/env']
            - name: DD_SERVICE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.labels['tags.datadoghq.com/service']
            - name: DD_VERSION
              valueFrom:
                fieldRef:
                  fieldPath: metadata.labels['tags.datadoghq.com/version']

[!example] 태그 활용 시나리오 "프로덕션 환경의 checkout 서비스 에러율이 높다"는 알림을 받았을 때:

  1. env:production service:checkout으로 대시보드 필터링
  2. 같은 태그로 로그 검색 → 에러 메시지 확인
  3. 같은 태그로 APM 트레이스 조회 → 병목 구간 확인

→ 동일한 태그로 메트릭·로그·트레이스를 연결하여 근본 원인 파악

참고 자료

관련 노트