ADR-005 env 태그 재사용 — 신규 라벨 미도입

  • 상태: 채택
  • 날짜: 2026-07-03
  • 근거: PRD FR-8, NFR(누락 0건) / TDD “인터페이스·엔드포인트 계약”

맥락

application.yml:171management.metrics.tags.env: ${APP_ENV:local}가 이미 존재한다. dev/prod 구분을 위해 새 라벨 키(예: environment)를 도입할지, 기존 env를 재사용할지 결정이 필요하다. trace·log에도 같은 차원을 일관 부여해야 한다(FR-8, 누락 0).

결정

기존 env 태그를 재사용하고 신규 라벨 키를 도입하지 않는다.

  • 메트릭: management.metrics.tags.env(기존) 유지.
  • trace/log: OTel resource attribute deployment.environment=${APP_ENV:local}로 매핑(OTEL_RESOURCE_ATTRIBUTES).
  • Grafana 대시보드 변수: env 라벨로 dev/prod 필터.
  • exporter 인프라 메트릭: Prometheus relabel로 env 라벨 부여.

근거

  1. FR-8 명시 요구 — “새 라벨 키를 도입하지 않는다”가 PRD 문구.
  2. 누락 0 용이 — 단일 원천(APP_ENV)에서 metric 태그·trace resource·log MDC가 파생 → 값 불일치·누락 방지.
  3. 값 체계는 ⑧ 소유local/dev/prod 값의 의미는 [배포 파이프라인·환경 분리 ⑧]가 정의. 본 과제는 키만 고정, 값은 주입받음.
  4. Grafana 관례 정합 — Prometheus 라벨(env)과 Tempo/Loki resource(deployment.environment)를 대시보드에서 env로 통일 표기(datasource 매핑에서 흡수).

대안 (미채택)

  • 신규 environment 라벨 도입: FR-8 위반, 기존 태그와 이중화. 미채택.

영향

  • BE-02가 management.metrics.tags.env 유지 + OTEL_RESOURCE_ATTRIBUTES 매핑을 계약으로 동결.
  • INFRA-03 prometheus.yml이 exporter 잡에 env relabel 추가.
  • INFRA-04 Grafana 대시보드가 env 템플릿 변수 사용.
  • ⑧이 APP_ENV 값을 환경별로 주입.