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

스무딩

원문 보기 위키 갱신

스무딩 (Smoothing)

스무딩 함수는 메트릭의 노이즈를 줄여 추세를 더 명확하게 보여 주는 함수예요. 자동 스무딩부터 이동 평균, 이동 중앙값, 가중 계산까지 메트릭의 변동을 완만하게 다듬고 싶을 때 사용합니다.

출처: 문서

본문

오토스무딩 (Autosmooth)

함수 설명 예시
autosmooth() 메트릭의 추세는 보존하면서 노이즈를 자동으로 제거합니다. autosmooth(<METRIC_NAME>{*})

autosmooth() 함수는 자동으로 선택된 스팬(span)으로 이동 평균을 적용해요. timeseries를 다듬으면서도 추세는 보존합니다. 이 예시에서 함수는 timeseries를 다듬기 위한 최적의 스팬을 선택합니다.

group by 쿼리(예: avg by)에서 사용하면 모든 timeseries에 동일한 스팬이 적용됩니다. 같은 그래프에서 여러 메트릭에 사용하면 각 메트릭 timeseries를 최적으로 다듬기 위해 서로 다른 스팬이 선택될 수 있어요.

이 알고리즘은 ASAP 알고리즘에서 영감을 받았어요. 이 블로그 게시물에서 자세히 읽을 수 있습니다.

autosmooth() 함수는 모니터에서는 사용할 수 없어요. 스팬이 동적으로 선택되므로 함수를 적용한 결과가 분 단위로 달라져 임계값 설정이 어려워지고 알림 플래핑(flapping)이 발생할 수 있기 때문입니다.

지수 가중 이동 평균 (Exponentially weighted moving average)

Ewma 1

함수 설명 예시
ewma_1() 스팬 1에 걸친 지수 가중 이동 평균을 계산합니다. ewma_1(<METRIC_NAME>{*})

Ewma 3

함수 설명 예시
ewma_3() 스팬 3에 걸친 지수 가중 이동 평균을 계산합니다. ewma_3(<METRIC_NAME>{*})

참고: 스팬 값은 시리즈의 가중 평균 연령(weighted average age)의 두 배입니다. 따라서 ewma_3()은 3일 이동 평균과 비슷하다고 볼 수 있어요.

예시:

메트릭 10 + x%10 {*}가 10에서 시작해 1씩 증가하다가 10개 데이터 포인트 후 다시 10으로 떨어진다면, ewma3(10 + x%10 {*})는 다음과 같은 모양이 됩니다.

Ewma 5

함수 설명 예시
ewma_5() 스팬 5에 걸친 지수 가중 이동 평균을 계산합니다. ewma_5(<METRIC_NAME>{*})

참고: 스팬 값은 시리즈의 가중 평균 연령의 두 배입니다. 따라서 ewma_5()은 5일 이동 평균과 비슷하다고 볼 수 있어요.

예시:

메트릭 10 + x%10 {*}가 10에서 시작해 1씩 증가하다가 10개 데이터 포인트 후 다시 10으로 떨어진다면, ewma5(10 + x%10 {*})는 다음과 같은 모양이 됩니다.

Ewma 7

함수 설명 예시
ewma_7() 스팬 7에 걸친 지수 가중 이동 평균을 계산합니다. ewma_7(<METRIC_NAME>{*})

참고: 스팬 값은 시리즈의 가중 평균 연령의 두 배입니다. 따라서 ewma_7()은 7일 이동 평균과 비슷하다고 볼 수 있어요.

Ewma 10

함수 설명 예시
ewma_10() 스팬 10에 걸친 지수 가중 이동 평균을 계산합니다. ewma_10(<METRIC_NAME>{*})

참고: 스팬 값은 시리즈의 가중 평균 연령의 두 배입니다. 따라서 ewma_10()은 10일 이동 평균과 비슷하다고 볼 수 있어요.

예시:

메트릭 10 + x%10 {*}가 10에서 시작해 1씩 증가하다가 10개 데이터 포인트 후 다시 10으로 떨어진다면, ewma10(10 + x%10 {*})는 다음과 같은 모양이 됩니다.

Ewma 20

함수 설명 예시
ewma() 기본 스팬 20에 걸친 지수 가중 이동 평균을 계산합니다. ewma(<METRIC_NAME>{*})
ewma_20() 스팬 20에 걸친 지수 가중 이동 평균을 계산합니다. ewma_20(<METRIC_NAME>{*})

ewma()와 ewma_20()은 동일하게 동작합니다.

참고: 스팬 값은 시리즈의 가중 평균 연령의 두 배입니다. 따라서 ewma()와 ewma_20()은 20일 이동 평균과 비슷하다고 볼 수 있어요.

예시:

메트릭 10 + x%10 {*}가 10에서 시작해 1씩 증가하다가 10개 데이터 포인트 후 다시 10으로 떨어진다면, ewma20(10 + x%10 {*})는 다음과 같은 모양이 됩니다.

중앙값 (Median)

Median 3

함수 설명 예시
median() 기본 스팬 3의 이동 중앙값입니다. median(<METRIC_NAME>{*})
median_3() 스팬 3의 이동 중앙값입니다. median_3(<METRIC_NAME>{*})

median()과 median_3()은 동일하게 동작합니다.

참고: 스팬 값은 데이터 포인트의 개수입니다. 따라서 median()과 median_3()은 최근 3개 데이터 포인트를 사용해 중앙값을 계산해요.

Median 5

함수 설명 예시
median_5() 스팬 5의 이동 중앙값입니다. median_5(<METRIC_NAME>{*})

참고: 스팬 값은 데이터 포인트의 개수입니다. 따라서 median_5()는 최근 5개 데이터 포인트를 사용해 중앙값을 계산해요.

Median 7

함수 설명 예시
median_7() 스팬 7의 이동 중앙값입니다. median_7(<METRIC_NAME>{*})

참고: 스팬 값은 데이터 포인트의 개수입니다. 따라서 median_7()은 최근 7개 데이터 포인트를 사용해 중앙값을 계산해요.

Median 9

함수 설명 예시
median_9() 스팬 9의 이동 중앙값입니다. median_9(<METRIC_NAME>{*})

참고: 스팬 값은 데이터 포인트의 개수입니다. 따라서 median_9()은 최근 9개 데이터 포인트를 사용해 중앙값을 계산해요.

가중 (Weighted)

정보: Weighted()는 게이지 유형 메트릭에서 SUM BY로 쿼리할 때만 사용할 수 있어요.

함수 설명 예시
weighted() 일시적 태그의 적절한 가중치를 보존하면서 노이즈를 자동으로 제거합니다. sum:(<GAUGE_METRIC_NAME>{*}).weighted()

weighted() 함수는 게이지 메트릭을 공간에서 합산할 때 일시적·변동이 잦은 태그 값의 수명이 짧은 점을 반영해 인위적인 스파이크를 방지해 줘요.

이 함수는 다음 두 조건이 모두 충족되면 게이지 메트릭 쿼리에 자동으로 추가됩니다:

  1. 메트릭이 규칙적이고 일관된 제출 간격을 가지며 Metrics Summary에도 지정되어 있는 경우
  2. 메트릭이 SUM by로 집계되는 경우 (예: sum: mygaugemetric{*})

여기 부정확한 스파이크가 있는 원래 쿼리(보라색)와 적절한 가중 계산을 적용한 쿼리(초록색)의 예시 그래프가 있습니다:

weighted() 수정자에 대한 자세한 내용은 weighted()는 어떻게 동작하나요?를 참고하세요.

기타 함수 (Other functions)

사용할 수 있는 다른 함수들을 확인해 보세요:

더 알아보기 (Learn more)