본문 바로가기
WIKI 기술 지식 베이스

적응형 샘플링 (Adaptive Sampling)

원문 보기 위키 갱신

적응형 샘플링은 특정 목표(수집된 기가바이트)에 가까워지면서도 더 관련성 높은 트레이스를 캡처할 수 있게 도와주는 기능이에요. 하나 이상의 서비스에 대해 트레이스 수집 월간 목표량을 설정하면, 해당 서비스의 엔드포인트 가시성을 유지하면서 월말에 소비량이 목표량과 일치하도록 해 줍니다.

출처: 문서

본문

개요 (Overview)

Datadog **적응형 샘플링(adaptive sampling)**은 특정 목표(수집된 기가바이트)에 가깝게 유지하면서도 더 관련성 높은 트레이스를 캡처할 수 있게 도와줘요.

샘플링 전략으로 적응형 샘플링을 선택하면 하나 이상의 서비스에 대해 트레이스 수집 월간 목표량을 선택하게 돼요. 그러면 월말에 해당 서비스의 소비량이 목표량과 일치하면서도 서비스 엔드포인트에 대한 가시성은 유지돼요.

적응형 샘플링은 원격 구성(remote configuration)과 기존 샘플링 규칙(sampling rules) 메커니즘을 조합해 환경·서비스·리소스 조합별로 샘플링 비율을 동적으로 조정해요. 이를 통해 다음을 달성할 수 있어요:

  • 지정한 월간 목표에 맞추기
  • 5분마다 서비스·리소스·환경 조합별로 최소 하나의 트레이스를 캡처해 트래픽이 적은 서비스와 엔드포인트의 가시성 확보

적응형 샘플링을 사용하도록 서비스를 구성하려면 아래 안내를 따르세요.

요구사항 (Requirements)

  • Datadog Agent 7.53.0 이상
  • Agent에 원격 구성(Remote Configuration) 활성화
  • APM Remote Configuration Write 권한. 참고: 이 권한이 없으면 Datadog 관리자에게 조직 설정에서 권한 업데이트를 요청하세요.

트레이싱 라이브러리 버전 (Tracing library versions)

적응형 샘플링에 필요한 최소 SDK 버전은 다음 표와 같아요:

언어 필요 최소 버전
Java v1.34.0
Go v1.68.0
Python v3.14.2
Ruby v2.0.0
Node.js v5.16.0
.NET v2.54.0
C++/Proxies v0.2.2
PHP v1.4.0
Rust v0.4.0

제한사항 (Limitations)

샘플링 구성에 따라 서비스와 환경 조합에 제한이 적용돼요:

적응형 샘플링 (Adaptive sampling)

  • 적응형 샘플링에 온보딩할 수 있는 service/env 조합의 최대 수는 800개예요.
  • 적응형 샘플링으로 구성된 각 고유 service/env 쌍은 이 제한에 포함돼요.

원격 샘플링 구성 (Remote sampling configuration)

  • 원격 샘플링 구성을 사용하는 service/env 조합의 최대 수는 1000개예요.
  • 이 제한은 각 서비스에 정의된 샘플링 규칙 수와 무관하게 적용돼요.
  • 원격 샘플링이 활성화된 각 고유 service/env 쌍은 이 제한에 한 번만 포함돼요.

적응형 샘플링과 원격 샘플링을 모두 사용하는 서비스 (Services using both adaptive and remote sampling)

  • service/env 조합이 적응형 샘플링과 원격 샘플링 구성을 모두 사용하면 각각의 제한에 한 번씩 포함돼요(적응형 샘플링 800개 제한에 한 번, 원격 샘플링 1000개 제한에 한 번).
  • 각 개별 제한 내에서 두 번 포함되지는 않아요.

적응형 샘플링 목표 구성하기 (Configure the adaptive sampling target)

적응형 샘플링을 시작하려면 먼저 목표 전략 설정을 선택해야 해요:

  • APM 호스트 수로 목표 설정: 할당량과 온보딩된 서비스 수에 비례하는 목표 구성 (예: APM 호스트 수 기준)
  • 데이터 볼륨으로 목표 설정: 월간 고정 기가바이트 목표 구성
APM 호스트 수로 목표 설정 데이터 볼륨으로 목표 설정
장점 APM 호스트 수와 온보딩된 서비스 수에 따라 확장되며 한 번만 설정하면 됨
단점 Datadog에 APM 데이터를 보고하는 호스트 수에 따라 달라질 수 있어 특정 볼륨 아래로 유지하려는 경우 적합하지 않음

적응형 샘플링 월간 목표를 설정하려면:

  1. Ingestion Control 페이지로 이동하세요.
  2. Manage Adaptive Sampling Target을 클릭하세요.
  3. 샘플링 목표 전략을 선택하세요:
    • APM 호스트 수로 목표 설정
    • 데이터 볼륨으로 목표 설정
  4. Apply를 클릭하세요.

APM 호스트 수로 목표 설정 (권장) (Set target by number of APM hosts)

월간 목표를 할당량의 백분율로 설정하세요. 페이지 하단에는 해당 백분율이 월간 목표 볼륨으로 어떻게 변환되는지에 대한 더 자세한 설명이 제공돼요. 이 값은 다음의 곱이에요:

  • 전역 할당량: 150GB * number_of_APM_hosts + 50GB * number_of_traced_serverless_invocations (해당 시) + 10GB * number_of_fargate_tasks (해당 시)
  • 위에서 구성한 할당량의 백분율
  • 온보딩된 서비스의 할당량 기여분. 예를 들어 적응형 샘플링에 온보딩된 서비스가 총 수집 볼륨의 10%를 기여한다면 Datadog는 전역 할당량의 10%를 목표로 삼아요. 이 숫자는 온보딩된 서비스 수에 따라 증가해요.

월간 목표 볼륨은 30분마다 다시 계산돼요.

데이터 볼륨으로 목표 설정 (Set target by data volume)

첫 번째 서비스를 적응형 샘플링으로 구성하는 경우 수집 볼륨 목표를 0보다 큰 값으로 설정하세요. 이후 서비스는 새 서비스 온보딩 후 새 볼륨을 반영해 할당된 목표를 늘려야 해요.

참고: 구성된 목표는 적응형 샘플링에 온보딩된 서비스에만 할당돼요. 적응형 샘플링에 온보딩되지 않은 서비스의 수집 볼륨, 로컬 샘플링 규칙, Agent나 SDK에서 로컬로 구성된 기타 샘플링 메커니즘은 포함하지 않아요.

서비스에 적응형 샘플링 구성하기 (Configure adaptive sampling for a service)

서비스의 리소스별 샘플링 비율 보기 (View sampling rates by resource for a service)

서비스에 적응형 샘플링을 구성하기 전에 해당 서비스의 현재 수집 구성을 볼 수 있어요.

구성된 샘플링 비율을 보려면:

  1. Ingestion Control 페이지로 이동하세요.
  2. 서비스를 클릭해 Service Ingestion Summary를 확인하세요.
  3. 해당 서비스의 리소스별로 적용된 샘플링 비율을 나열한 표를 확인하세요.

표에는 다음이 포함돼요:

  • Ingested bytes: 해당 서비스와 리소스의 스팬에서 수집된 바이트
  • Downstream bytes: 해당 서비스와 리소스에서 샘플링 결정이 시작되는 스팬(다운스트림 서비스 포함)에서 수집된 바이트
  • Configuration: 리소스 샘플링 비율의 출처

서비스가 적응형 샘플링에 온보딩되면 샘플링 비율이 조정되어 10분마다 다시 계산돼요.

서비스를 적응형 샘플링에 온보딩하기 (Onboard a service to adaptive sampling)

서비스를 적응형 샘플링에 온보딩하려면:

  1. Ingestion Control 페이지로 이동하세요.
  2. 서비스를 클릭해 Service Ingestion Summary를 확인하세요.
  3. Manage Ingestion Rate를 클릭하세요.
  4. 서비스의 샘플링 전략으로 Datadog adaptive sampling rates를 선택하세요.
  5. (선택 사항) 더 많은 데이터를 캡처하고 싶은 리소스(예: GET /checkout 엔드포인트의 100%)나 더 적게 캡처하고 싶은 리소스(예: /health 요청의 0.1%)에 대해 명시적 샘플링 비율을 구성하세요.
  6. Apply를 클릭하세요.

참고: 이 구성을 원격으로 적용하는 것이 비활성화되어 있다면 원격 구성 요구사항이 충족되었는지 확인하세요.

구성은 Datadog가 서비스의 트래픽 패턴을 관찰하고 계산한 뒤 샘플링 비율을 적용하는 데 걸리는 5~6분 후에 적용돼요. 원격으로 구성된 리소스는 Configuration 열에 Configured Remote로 표시돼요.

권한 (Permissions)

기본적으로 Datadog Admin 역할의 사용자만 적응형 샘플링 구성을 수정하거나 서비스를 적응형 샘플링에 온보딩할 수 있어요.

조직에서 사용자 지정 역할을 사용한다면 APM Remote Configuration Write와 APM Service Ingest Write 권한을 포함한 사용자 지정 역할에 사용자를 할당하세요.

접근 제한 (Restrict access)

세밀한 접근 제어(granular access controls)를 사용해 서비스의 적응형 샘플링 구성을 수정할 수 있는 사용자를 관리하세요. 역할, 팀, 개별 사용자 기준으로 접근을 제한할 수 있어요.

참고: remote_config_write 권한이 있는 사용자만 개별 서비스의 적응형 샘플링 구성에 대한 접근을 제한할 수 있어요.

  1. 서비스의 Ingestion Control 사이드 패널에서 Permissions 섹션을 여세요.
  2. Restrict access를 클릭하세요.
  3. 접근을 부여할 팀, 역할, 사용자를 선택하세요.
  4. Add를 클릭하세요.

더 알아보기 (Learn more)