데이터 수집 관리(Manage Data Collection)
Error Tracking에서 비용을 제어하는 방법을 배워요.
출처: 문서
본문
개요
Error Tracking은 어떤 오류를 수집할지 세밀하게 제어할 수 있게 해 줘서 노이즈를 줄이고 예상치 못한 비용을 피할 수 있어요.
Error Tracking에 포함할 데이터를 정의하는 방법은 두 가지가 있어요.
- 규칙(Rules)
- 속도 제한(Rate limits)
규칙과 속도 제한은 모두 Error Tracking > Settings 페이지에서 구성할 수 있어요.
규칙
규칙을 사용하면 Error Tracking에 어떤 오류를 수집할지 선택할 수 있어요. 규칙은 과금 대상 및 비과금 오류 모두에 적용돼요.
각 규칙은 다음으로 구성돼요.
- 범위(scope):
service:my-web-store같은 검색 쿼리를 포함하는 포함 필터. - 선택적으로, 규칙을 더 정제하고 일치하는 일부 이벤트를 무시하기 위한 하나 이상의 중첩 제외 필터. 예를 들어 제외 필터는 스테이징 오류를 제외하기 위해
env:staging쿼리를 사용할 수 있어요.
이벤트는 규칙의 포함 필터와 일치하고 해당 규칙의 제외 필터 중 어느 것과도 일치하지 않으면 포함돼요. 규칙은 켜거나 끌 수 있어요.
이벤트는 규칙에 대해 순서대로 확인돼요. 평가는 일치하는 첫 활성 규칙에서 중지되고, 후속 규칙은 무시돼요.
참고: 규칙에 의해 승인된 오류 이벤트라도 필수 속성이 부족하면 Error Tracking에서 제외될 수 있어요.
규칙 평가 방식
규칙 순서는 이벤트가 어떤 규칙과 일치하는지 결정해요. 예를 들어 다음 두 규칙이 있다고 하면:
| 규칙 | 포함 필터 | 제외 필터 |
|---|---|---|
| 1 | env:prod |
service:internal-tools |
| 2 | env:staging |
(없음) |
| 이벤트 | 결과 |
|---|---|
env:prod service:checkout |
규칙 1, 제외 없음 → 포함 |
env:prod service:internal-tools |
규칙 1, 제외 일치 → 제외 |
env:staging service:payments |
규칙 2 → 포함 |
env:dev service:checkout |
일치 없음 → 기본 규칙 적용 |
예제: 여러 제외 필터
주어진 규칙 목록:
-
규칙 1:
env:prod- 제외 필터 1-1:
service:api - 제외 필터 1-2:
status:warn
- 제외 필터 1-1:
-
규칙 2:
service:web -
규칙 3(비활성화됨):
team:security -
규칙 4:
service:foo
처리 흐름은 다음과 같아요.
| 이벤트 | 결과 |
|---|---|
env:prod service:my-service status:warn |
규칙 1, 제외 필터 1-2 일치 → 제외 |
env:staging service:web |
규칙 2 → 포함 |
기본 규칙
기본적으로 Error Tracking은 제외 필터가 없는 * 포함 필터를 포함해요. 이 캐치올은 다른 규칙과 일치하지 않는 모든 이벤트가 여전히 수집된다는 뜻이에요. 수집을 특정 소스로 제한하려면 기본 규칙에 제외 필터를 추가하거나, 기본 규칙을 제거하고 명시적 포함 규칙으로 교체하세요.
규칙 추가
규칙(포함 필터)을 추가하려면:
- Error Tracking 설정으로 이동하세요.
- Add New Rule을 클릭하세요.
- 규칙을 적용할 Error Tracking 소스를 선택하세요.
- Define scope 필드에 검색 쿼리를 입력하세요.
- 선택적으로 규칙에 제외 필터와 설명을 추가하세요.
- Save Changes를 클릭하세요.
- 선택적으로 규칙을 재정렬해 평가 순서를 변경하세요. 주어진 규칙의 여섯 점 아이콘을 클릭하고 끌어서 목록에서 규칙을 위아래로 이동하세요.
속도 제한
속도 제한을 사용하면 하루에 Error Tracking에 포함되는 과금 대상 오류 수를 제어할 수 있어요. 이 상한은 규칙의 필터와 일치하는 모든 오류에 적용돼요.
일일 상한에 도달하면 다음 날까지 수집이 중지돼요. 언제든지 상한을 수정하거나 제거할 수 있어요.
속도 제한 설정
속도 제한을 설정하려면:
- Error Tracking > Settings로 이동하세요.
- Rate Limits를 클릭하세요.
- errors/day 필드를 편집하세요.
- Save Rate Limit을 클릭하세요.
속도 제한에 도달하면 Rate limit applied 이벤트가 생성돼요. 이벤트 보기와 사용에 대한 자세한 내용은 이벤트 관리 문서를 참고하세요.
사용량 모니터링
datadog.estimated_usage.error_tracking.logs.events 메트릭(수집된 오류 로그 수를 추적)에 대한 모니터와 알림을 설정해 로그 사용량의 Error Tracking을 모니터링할 수 있어요.
이 메트릭은 추가 비용 없이 기본적으로 사용할 수 있으며, 데이터는 15개월 동안 보존돼요.
동적 샘플링
Error Tracking 과금은 오류 수를 기반으로 하므로, 단일 이슈에서 오류가 크게 증가하면 Error Tracking 예산을 빠르게 소비할 수 있어요. 동적 샘플링은 일일 속도 제한과 과거 오류 볼륨을 기반으로 이슈별 오류율에 대한 임계값을 설정해 사용자를 보호하고, 그 임계값에 도달하면 오류를 샘플링해요. 이슈의 오류율이 주어진 임계값 아래로 떨어지면 동적 샘플링은 자동으로 비활성화돼요.
셋업
동적 샘플링은 일일 속도 제한과 과거 볼륨을 기반으로 한 기본 수집 임계값으로 Error Tracking에서 자동으로 활성화돼요.
최상의 결과를 위해 Error Tracking 속도 제한 페이지에서 일일 속도 제한을 설정하세요: Edit Rate Limit를 클릭하고 새 값을 입력하세요.
동적 샘플링 비활성화
동적 샘플링은 Error Tracking 설정 페이지에서 비활성화할 수 있어요.
동적 샘플링 모니터링
동적 샘플링이 이슈에 적용되면 Dynamic Sampling activated 이벤트가 생성돼요. 이벤트 보기와 사용에 대한 자세한 내용은 이벤트 관리 문서를 참고하세요.
조사 및 완화 단계
동적 샘플링이 적용되면 다음 단계가 권장돼요.
- 어떤 이슈가 쿼터를 소비하는지 확인하세요. 동적 샘플링이 적용된 이슈는 Event Management에서 생성된 이벤트에 연결돼요.
- 이 이슈에 대해 추가 샘플을 수집하고 싶다면 Error Tracking 속도 제한 페이지에서 일일 쿼터를 높이세요.
- 향후 이 이슈에 대해 샘플 수집을 피하고 싶다면 제외 필터를 만들어 추가 이벤트가 Error Tracking에 수집되지 않도록 하세요.
더 알아보기 (Learn more)
추가로 도움이 되는 문서, 링크, 아티클: