SampleRate 속성이 포함됩니다.
데이터가 샘플링되면 단순 집계는 잘못된 결과를 냅니다. count()는 실제 발생한 이벤트보다 N배 적은 값을 반환하고, sum()과 avg()는 편향되며, 백분위수도 달라집니다. 그 결과 대시보드에는 요청 수, 처리량, 오류율이 실제보다 낮게 표시되어 잘못된 인상을 줄 수 있습니다.
ClickStack은 샘플링을 고려하는 쿼리 엔진으로 이 문제를 해결합니다. 트레이스 소스에 샘플 비율 표현식을 설정하면, 쿼리 빌더가 SQL 집계를 재작성해 각 스팬에 샘플 비율에 따른 가중치를 적용합니다. 이 방식은 대시보드, 알림, 애드혹 검색 전반에 걸쳐 적용됩니다.
작동 방식
sampleRateExpression이 구성되면 ClickStack은 이를 다음과 같이 래핑합니다:
SampleRate 속성이 없는 스팬은 기본적으로 가중치 1로 처리되므로, 샘플링되지 않은 데이터는 원래 쿼리와 동일한 결과를 반환합니다.
그다음 쿼리 빌더는 집계를 다음과 같이 재작성합니다:
| 집계 | 이전 | 이후(샘플 보정 적용) |
|---|---|---|
| count | count() | sum(weight) |
| count + condition | countIf(cond) | sumIf(weight, cond) |
| avg | avg(col) | sum(col * weight) / sum(weight) |
| sum | sum(col) | sum(col * weight) |
| quantile(p) | quantile(p)(col) | quantileTDigestWeighted(p)(col, weight) |
| min / max | 변경 없음 | 변경 없음 |
| count_distinct | 변경 없음 | 변경 없음 |
샘플링 시 분위수는 근사 T-Digest 스케치인
quantileTDigestWeighted를 사용합니다. 결과는 유사하지만 정확히 일치하지는 않습니다.샘플 비율 표현식 설정하기
SpanAttributes['SampleRate']에 기록하는 경우:
설정을 마치면 모든 차트, 대시보드, 알림, 서비스 대시보드 패널에 샘플 비율이 반영된 집계가 자동으로 적용됩니다. 개별 쿼리는 변경할 필요가 없습니다.