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

수집 제어 (Ingestion Controls)

원문 보기 위키 갱신

수집 제어는 애플리케이션이 Datadog에 보내는 트레이스를 결정하는 데 영향을 줘요. APM 메트릭은 항상 모든 트레이스를 기준으로 계산되며 수집 제어의 영향을 받지 않아요.

출처: 문서

본문

개요 (Overview)

수집 제어(Ingestion Control) 페이지는 애플리케이션과 서비스의 수집 구성에 대한 가시성을 제공해요. 수집 제어 페이지에서 다음을 할 수 있어요:

  • 서비스 수준 수집 구성에 대한 가시성 확보
  • 높은 처리량의 서비스나 엔드포인트의 트레이스 샘플링 비율을 조정해 할당량을 더 잘 관리
  • 낮은 처리량·희귀 트래픽의 서비스나 엔드포인트의 트레이스 샘플링 비율을 조정해 가시성 향상
  • 대부분의 트레이스를 샘플링하는 수집 메커니즘 파악
  • Agent의 제한된 CPU·RAM 리소스 등 잠재적 수집 구성 문제를 조사하고 조치

수집 구성 이해하기 (Understanding your ingestion configuration)

페이지 헤더의 데이터로 트레이스 수집을 모니터링하세요:

  • Monthly Ingestion: 이번 달 현재까지 수집된 데이터 양, 예상 월말 수집량, 월간 할당량을 표시해요. 예상 수집량이 할당량 안에 머물 수 있는지 여부를 나타내는 상태 메시지도 함께 보여 줘요.
  • APM Adaptive Sampling: 월간 할당량 중 적응형 샘플링 목표로 커버되는 양과 서비스 제한 대비 온보딩된 서비스 수를 표시해요.
  • Ingestion Over Time: 시간에 따른 수집 볼륨을 출처(APM, 기타 Datadog 제품, OTel)별로 나눈 그래프로, 월간 할당량이 기준선으로 표시돼요.

예상 수집량이 월간 할당량보다 적다면 잘 유지하고 있는 거예요. 할당량을 초과할 것으로 예상된다면 서비스 수집 비율이나 적응형 샘플링 목표를 조정하세요.

서비스별 수집 수준 (Ingestion levels by service)

서비스 테이블은 서비스별로 나눈 수집 볼륨과 수집 구성 정보를 포함해요. 표 위의 All services, Managed by APM, Managed by other Datadog products, Managed by OTel 탭을 사용해 수집 출처별로 서비스를 필터링할 수 있어요.

  • Type: 서비스 유형 (웹 서비스, 데이터베이스, 캐시, 브라우저 등)
  • Name: Datadog에 트레이스를 보내는 각 서비스의 이름. 표에는 지난 1시간 동안 데이터가 수집된 루트 및 비루트 서비스가 포함돼요.
  • Ingested Traces/s: 지난 1시간 동안 해당 서비스에서 시작되어 수집된 초당 평균 트레이스 수
  • Ingested Bytes/s: 지난 1시간 동안 해당 서비스에 대해 수집된 초당 평균 바이트 수
  • Downstream Bytes/s: 서비스가 샘플링 결정을 내리는 지점에서 수집된 초당 평균 바이트 수. 여기에는 트레이스 헤드에서 내려진 결정에 따라 콜 스택의 모든 다운스트림 서비스 스팬의 바이트가 포함돼요. 이 열의 데이터는 datadog.estimated_usage.apm.ingested_bytes 메트릭에 설정된 sampling_service 차원을 기반으로 해요. 자세한 내용은 APM 사용량 메트릭을 참고하세요.
  • Traffic Breakdown: 서비스에서 시작된 트레이스에 대해 샘플링된 트래픽과 샘플링되지 않은 트래픽의 상세 분석. 서비스 트래픽의 25% 이상이 레이트 리미터에 의해 드롭되면 분석 옆에 경고 아이콘이 표시돼요. 자세한 내용은 Traffic breakdown을 참고하세요.
  • Configuration: 서비스 수집의 출처 제품과, APM 서비스의 경우 샘플링이 어떻게 구성되었는지 표시: Agent의 기본 헤드 기반 샘플링 메커니즘이 적용되면 APM Agent, SDK의 구성에서 샘플링 규칙이 적용되면 APM Local, UI에서 사용자 정의 또는 적응형 샘플링 샘플링 규칙이 원격으로 적용되면 APM Remote. OpenTelemetry를 통한 수집은 OTel로 표시되고, 다른 Datadog 제품의 수집은 RUM, Synthetics, AppSec, CI Visibility, AWS X-Ray로 표시돼요. 둘 이상의 범주에 해당하는 서비스는 N Configurations 배지가 표시되며, 배지에 마우스를 올리면 전체 목록을 볼 수 있어요. 서비스 수집 구성에 대한 자세한 내용은 기본 수집 비율 변경을 참고하세요.
  • Adaptive Sampling: 서비스의 적응형 샘플링 채택 상태 표시: 서비스가 적응형 샘플링으로 커버되면 Full 또는 Partial(배지에 마우스를 올리면 커버리지 비율 확인), 온보딩 가능하지만 아직 안 된 경우 Compatible, 트레이서나 Agent 버전이 적응형 샘플링을 지원하지 않는 경우 Not Compatible, 서비스에 대해 적응형 샘플링이 명시적으로 꺼진 경우 Disabled.
  • Infrastructure: 서비스가 실행 중인 호스트, 컨테이너, 함수. 기본적으로 숨겨져 있으며, 표의 Options 메뉴에서 활성화할 수 있어요.

서비스 이름, 환경, 구성, 적응형 샘플링 상태로 페이지를 필터링하거나 Root services only를 토글해 조치가 필요한 서비스만 볼 수 있어요. 전역 수집 볼륨을 줄이려면 Downstream Bytes/s 열로 표를 정렬해 수집량에서 가장 큰 비중을 차지하는 서비스를 확인하세요.

참고: 표는 사용량 메트릭 datadog.estimated_usage.apm.ingested_spans와 datadog.estimated_usage.apm.ingested_bytes를 기반으로 해요. 이 메트릭은 service, env, ingestion_reason으로 태깅돼요.

트래픽 분석 (Traffic breakdown)

Traffic Breakdown 열은 서비스에서 시작된 모든 트레이스의 도착지를 나눠 보여 줘요. 수집되거나 드롭된 트래픽의 비중과 그 이유를 추정할 수 있어요.

분석은 다음 부분으로 구성돼요:

  • 완전한 트레이스 수집됨(파란색): Datadog가 수집한 트레이스의 비율
  • 완전한 트레이스 미보관(회색): Datadog가 수집하지 않은 트레이스의 비율. 일부 트레이스는 다음 이유로 드롭될 수 있어요:
    1. 기본적으로 Agent가 서비스 트래픽에 따라 서비스에 샘플링 비율을 자동 설정하기 때문
    2. 서비스가 샘플링 규칙을 사용해 특정 비율의 트레이스만 수집하도록 구성되었기 때문
  • SDK 레이트 리미터가 드롭한 완전한 트레이스(주황색): 서비스 수집 비율을 트레이스 샘플링 규칙으로 백분율로 수동 설정하면 레이트 리미터가 자동 활성화되어 기본적으로 초당 100개 트레이스로 설정돼요. 이 비율을 변경하려면 레이트 리미터 문서를 참고하세요.
  • Agent CPU 또는 RAM 제한으로 드롭된 트레이스(빨간색): 이 메커니즘은 스팬을 드롭해 불완전한 트레이스를 만들 수 있어요. 해결하려면 Agent가 실행되는 인프라의 CPU와 메모리 할당을 늘리세요.

서비스 수집 구성하기 (Configuring ingestion for a service)

아무 서비스나 클릭하면 Service Ingestion Summary가 표시되어 해당 서비스의 트레이스 수집을 관리하기 위한 실행 가능한 인사이트와 구성 옵션을 제공해요.

서비스 수집 구성 (Ingestion configuration for a service)

리소스별 샘플링 비율 (Sampling rates by resource)

표에는 서비스의 리소스별 적용된 샘플링 비율이 나열돼요.

  • Ingested bytes 열은 해당 서비스와 리소스의 스팬에서 수집된 바이트를 보여 주고, Downstream bytes 열은 해당 서비스와 리소스에서 샘플링 결정이 시작되는 스팬(콜 체인의 다운스트림 서비스 바이트 포함)에서 수집된 바이트를 보여 줘요.
  • Configuration 열은 리소스 샘플링 비율이 어디서 적용되는지 표시해요:
    • Agent의 기본 헤드 기반 샘플링 메커니즘이 적용되면 Automatic
    • SDK에서 로컬로 샘플링 규칙이 설정된 경우 Local Configured
    • Datadog UI에서 원격 샘플링 규칙이 설정된 경우 Remote Configured. Ingestion Control 페이지에서 샘플링 규칙을 구성하는 방법은 샘플링 규칙 원격 구성 섹션을 참고하세요.

참고: 서비스가 샘플링 결정을 내리지 않으면 해당 서비스의 리소스는 Resources not making sampling decisions 행 아래로 접혀서 표시돼요.

참고: 짧은 시간 범위(1~4시간)에서는 유효 샘플링 비율이 100%로 구성되어 있어도 100% 미만으로 표시될 수 있어요. 이는 수렴하는 데 더 많은 데이터포인트가 필요한 통계적 계산 때문에 발생하는 정상 동작이에요. 모든 트레이스는 여전히 올바르게 캡처되고 있어요. 가장 정확한 표시를 위해 더 긴 시간 범위에서 샘플링 비율을 확인하세요.

수집 이유와 샘플링 결정자 (Ingestion Reasons and sampling decision makers)

Ingestion reasons 분석을 살펴보면 어떤 메커니즘이 서비스 수집을 담당하는지 알 수 있어요. 각 수집 이유는 하나의 특정 수집 메커니즘과 관련돼요. 서비스 수집 구성을 변경한 후, 지난 1시간의 수집 데이터를 기준으로 이 타임시리즈 그래프에서 수집된 바이트와 스팬의 증가·감소를 관찰할 수 있어요.

서비스 수집 볼륨의 대부분이 업스트림 서비스가 내린 결정 때문이라면 Sampling decision makers 상위 목록의 세부 내용을 조사하세요. 예를 들어 서비스가 비루트(트레이스 샘플링을 결정하지 않는)라면 비루트 서비스 수집을 담당하는 모든 업스트림 서비스를 관찰하세요. 업스트림 루트 서비스를 구성해 전체 수집 볼륨을 줄일 수 있어요.

추가 조사에는 APM Trace - Estimated Usage Dashboard를 사용하세요. 전역 수집 정보와 service, env, ingestion reason별 분석 그래프를 제공해요.

Agent 및 SDK 버전 (Agent and SDK versions)

서비스가 사용 중인 Datadog Agent와 SDK 버전을 확인하세요. 사용 중인 버전을 최신 릴리스 버전과 비교해 최신·최신 상태의 Agent와 라이브러리를 실행 중인지 확인하세요.

서비스 샘플링 비율 관리 (Managing services' sampling rates)

서비스의 샘플링 비율을 제어하려면 다음을 사용할 수 있어요:

  • 적응형 샘플링: 구성된 월간 수집 볼륨 목표에 맞게 샘플링 비율을 자동 조정
  • 리소스 기반 샘플링: 리소스별로 명시적 샘플링 비율을 수동 설정

이 전략들의 구성을 Datadog UI를 통해 원격으로 적용할 수 있어요. 이 방법은 서비스를 재배포하지 않고도 변경 사항이 즉시 적용되게 해 줘요. 리소스 기반 샘플링의 경우 서비스 구성 파일을 업데이트하고 재배포해 로컬로 적용할 수도 있어요.

서비스 수집 비율에 **원격 구성(Remote Configuration)**을 사용하려면 특정 요구사항이 있어요.

원격 구성 요구사항 (Remote Configuration requirements)

이 기능에 필요한 최소 SDK 버전은 다음과 같아요:

언어 최소 필요 버전
Java v1.34.0
Go v1.64.0
Python v.2.9.0
Ruby v2.0.0
Node.js v5.16.0
PHP v1.4.0
.NET v2.53.2
C++ v0.2.2
적응형 샘플링 (Adaptive sampling)

적응형 샘플링을 사용해 Datadog가 대신 서비스의 샘플링 비율을 관리하게 하세요. 하나 이상의 서비스에 월간 수집 볼륨 목표를 지정하면서 모든 서비스와 엔드포인트에 대한 가시성은 유지해요.

적응형 샘플링을 구성하려면:

  1. Ingestion Control 페이지로 이동하세요.
  2. 서비스를 클릭해 Service Ingestion Summary를 확인하세요.
  3. Manage Ingestion Rate를 클릭하세요.
  4. 서비스의 샘플링 전략으로 Datadog adaptive sampling rates를 선택하세요.
  5. Apply를 클릭하세요.

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

자세한 내용은 적응형 샘플링을 참고하세요.

리소스 기반 샘플링 (Resource-based sampling)

리소스 이름별로 서비스에 사용자 지정 샘플링 비율을 구성하려면:

  1. Ingestion Control 페이지로 이동하세요.
  2. 서비스를 클릭해 Service Ingestion Summary를 확인하세요.
  3. Manage Ingestion rate를 클릭하세요.
  4. Custom sampling rates only를 클릭하세요.
  5. Add new rule을 클릭해 일부 리소스에 대한 샘플링 비율을 설정하세요. 참고: 샘플링 규칙은 glob 패턴 매칭을 사용하므로 와일드카드(*)를 사용해 동시에 여러 리소스를 매칭할 수 있어요.
  6. 구성을 원격 또는 로컬로 적용하세요:

원격 (Remotely)

이 옵션은 원격 구성을 사용해 구성을 적용하므로 변경 사항이 적용되도록 서비스를 재배포할 필요가 없어요. Live Search Explorer에서 구성 변경을 관찰할 수 있어요.

Apply를 클릭해 구성을 저장하세요.

원격으로 구성된 리소스는 Configuration 열에 Configured Remote로 표시돼요.

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

로컬 (Locally)

이 옵션은 직접 적용할 구성을 생성해 줘요.

  1. 생성된 구성을 서비스에 적용하세요. 참고: 서비스 이름 값은 대소문자를 구분해요. 서비스 이름의 대소문자와 일치해야 해요.
  2. 서비스를 재배포하세요.
  3. Traffic Breakdown 열을 확인해 새 비율이 적용되었는지 확인하세요. 로컬로 구성된 리소스는 Configuration 열에 Configured Local로 표시돼요.

Datadog Agent 수집 구성 관리 (Managing Datadog Agent ingestion configuration)

Configure Datadog Agent Ingestion을 클릭해 기본 헤드 기반 샘플링 비율, 오류 샘플링, 희귀 샘플링을 관리하세요.

  • 헤드 기반 샘플링: 서비스에 샘플링 규칙이 설정되지 않으면 Datadog Agent가 서비스에 적용할 샘플링 비율을 자동 계산해 Agent당 초당 10개 트레이스를 목표로 해요. Datadog에서 이 목표 트레이스 수를 변경하거나 Agent 수준에서 로컬로 DD_APM_TARGET_TPS를 설정하세요.
  • 오류 스팬 샘플링: 헤드 기반 샘플링에 잡히지 않은 트레이스 중 Datadog Agent는 로컬 오류 트레이스를 Agent당 초당 최대 10개 잡아요. Datadog에서 이 목표 트레이스 수를 변경하거나 Agent 수준에서 로컬로 DD_APM_ERROR_TPS를 설정하세요.
  • 희귀 스팬 샘플링: 헤드 기반 샘플링에 잡히지 않은 트레이스 중 Datadog Agent는 로컬 희귀 트레이스를 Agent당 초당 최대 5개 잡아요. 이 설정은 기본적으로 비활성화돼요. Datadog에서 희귀 트레이스 수집을 활성화하거나 Agent 수준에서 로컬로 DD_APM_ENABLE_RARE_SAMPLER를 설정하세요.

원격 구성을 사용하면 Agent를 재시작하지 않고도 이 파라미터를 업데이트할 수 있어요. Apply를 클릭해 구성 변경을 저장하면 새 구성이 즉시 적용돼요. Agent 샘플링 파라미터의 원격 구성은 Agent 버전 7.42.0 이상에서 사용할 수 있어요.

참고: 파이 차트의 Other Ingestion Reasons(회색) 섹션은 Datadog Agent 수준에서 구성할 수 없는 다른 수집 이유를 나타내요.

참고: 원격으로 구성된 파라미터는 환경 변수나 datadog.yaml 구성 같은 로컬 구성보다 우선해요.

샘플링 규칙의 우선순위 (Sampling rules' precedence)

샘플링 규칙이 여러 위치에 설정된 경우 다음 우선순위 규칙이 순서대로 적용돼요. 목록에서 먼저 나타나는 규칙이 더 낮은 우선순위의 규칙을 덮어쓸 수 있어요:

  1. 리소스 기반 샘플링으로 설정된 원격 구성 샘플링 규칙
  2. 적응형 샘플링 규칙
  3. 로컬 구성 샘플링 규칙 (DD_TRACE_SAMPLING_RULES)
  4. 원격 구성 전역 샘플링 비율
  5. 로컬 구성 전역 샘플링 비율 (DD_TRACE_SAMPLE_RATE)
  6. Agent 설정으로 원격 또는 로컬에서 간접 제어되는 트레이스 Agent의 비율 (DD_APM_TARGET_TPS)

다르게 말하면 Datadog는 다음 우선순위 규칙을 사용해요:

  • 트레이서 설정 > Agent 설정
  • 샘플링 규칙 > 전역 샘플링 비율
  • 원격 > 로컬

더 알아보기 (Learn more)