Guance 데이터 샘플링 기능 기술 가이드: 데이터 양과 쿼리 효율 최적화¶
기능 처리 로직¶
Guance의 데이터 샘플링 기능은 데이터 처리의 전체 수명 주기에 걸쳐 적용됩니다.
-
수집 단계 샘플링: 데이터 업로드 전에 필터링하여 데이터 수집량과 스토리지 비용을 줄입니다.
-
쿼리 단계 샘플링: 대규모 쿼리 결과에 대해 지능형 다운샘플링을 수행하여 차트 렌더링 및 데이터 분석 속도를 향상시킵니다.
핵심 원칙¶
두 단계의 샘플링은 서로 독립적이면서도 상호 보완적입니다. 수집 단계 샘플링은 어떤 데이터가 영구 저장될지를 결정하여 스토리지 비용에 직접적인 영향을 미칩니다. 쿼리 단계 샘플링은 데이터 표시 방식에만 영향을 미치며 원본 데이터는 그대로 유지됩니다. 중요한 데이터의 무결성을 보장하면서 샘플링 전략을 통해 리소스 소비를 최적화합니다.
데이터 수집 단계의 샘플링 설정¶
다음은 3가지 대표적인 시나리오입니다.
1. 실제 사용자 모니터링(RUM) 샘플링¶
-
설정 진입: Guance 콘솔 > 실제 사용자 모니터링(RUM) > 애플리케이션 생성/편집 > SDK 설정
-
샘플링 로직:
-
sampleRate매개변수(예:sampleRate: 90)를 설정하여 데이터 업로드 비율을 제어합니다. -
SDK 초기화 시 난수(0-100)를 생성하며, 난수가 샘플링 비율보다 작으면 데이터를 업로드합니다.
-
-
사용 사례: 웹/Android/iOS/미니프로그램 애플리케이션에서 사용자 행동 데이터 스토리지 비용을 절감해야 하는 경우
2. 애플리케이션 성능 모니터링(APM) 샘플링¶
-
지원 방식:
-
코드 계측을 통해 샘플링 비율 설정(예: DDTrace, OpenTelemetry 등)
-
DataKit 수집기에서 분산 추적 데이터 샘플링 규칙 구성
-
-
샘플링 전략:
-
전체 수집: 오류 요청, 느린 요청
-
다운샘플링: 정상 요청(1%-10% 샘플링 비율 설정 가능)
-
3. 로그 데이터 샘플링¶
-
설정 기능:
-
Pipeline의
drop()함수를 사용하여 중복 로그를 폐기하거나sample()함수로 비율 기반 샘플링 수행 -
블랙리스트를 구성하여 저가치 로그 필터링 지원
-
-
일반적인 사용 사례: 디버그 로그는 낮은 샘플링 비율 적용, 오류 로그는 전체 수집
쿼리 단계의 샘플링 기능¶
Guance는 쿼리 단계에서 지능형 샘플링 메커니즘을 제공합니다. 쿼리 데이터 양이 사전 설정된 임계값에 도달하면 자동으로 트리거되어 대규모 데이터 쿼리의 응답 성능을 보장합니다.
시스템에서 설정한 주요 샘플링 임계값은 다음과 같습니다.
-
대시보드 쿼리: 2억 데이터 포인트
-
탐색기 쿼리: 1억 데이터 포인트
-
Facet 쿼리: 500만 데이터 포인트
-
기타 일반 쿼리: 2억 데이터 포인트
샘플링 전략 선택 가이드¶
| 시나리오 | 샘플링 유형 | 권장 설정 | 주의사항 |
|---|---|---|---|
| 사용자 행동 분석 | RUM 수집 샘플링 | 업무 중요도에 따라 샘플링 비율 설정 | 오류 작업 및 중요 경로는 전체 수집 보장 필요 |
| 애플리케이션 성능 문제 해결 | APM 분산 추적 샘플링 | 오류/느린 요청 전체 수집, 정상 요청 샘플링 비율 1%-10% | TraceID를 통해 분산 추적 무결성 보장 |
| 로그 장기 저장 | 로그 Pipeline 샘플링 | 고빈도 로그 샘플링 비율 ≤5%, 오류 로그 전체 수집 | 민감 데이터 마스킹 규칙과 결합 |
| 대시보드 거시적 추세 | 쿼리 샘플링 | 샘플링 활성화, 시간 범위 > 24시간 | 특정 문제 해결 시 샘플링 비활성화 및 시간 범위 축소 |
| 실시간 알림 | 미샘플링 | 원본 데이터 기반 계산 | 샘플링으로 인한 오탐/미탐 방지 |
주요 주의사항¶
-
데이터 일관성: 샘플링은 극단값을 희석할 수 있으므로, 중요한 의사 결정은 전체 데이터를 통해 검증해야 합니다.
-
비용과 성능의 균형: 수집 샘플링은 스토리지 비용을 절감하고, 쿼리 샘플링은 응답 속도를 향상시킵니다.
-
동적 최적화: 샘플링 후 데이터의 통계적 분포를 정기적으로 확인하고, 업무 변화에 맞춰 전략을 조정합니다.
요약¶
Guance의 샘플링 기능은 다계층, 맞춤형 비용 및 성능 최적화 도구입니다.
-
수집 측 샘플링은 데이터 유입을 직접 줄여 RUM, APM, 로그 등 고빈도 데이터에 적합합니다.
-
쿼리 측 샘플링은 대규모 데이터 상호 작용의 원활함을 보장하며, 대시보드 및 히스토리 분석에 적합합니다.
업무 우선순위(예: 오류 전체 수집, 정상 다운샘플링)와 쿼리 요구 사항(거시적 추세 활성화, 정밀 문제 해결 시 비활성화)을 결합하여 리소스 효율성과 데이터 신뢰성 간의 최적의 균형을 달성할 수 있습니다.