스무딩
스무딩 (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() 함수는 게이지 메트릭을 공간에서 합산할 때 일시적·변동이 잦은 태그 값의 수명이 짧은 점을 반영해 인위적인 스파이크를 방지해 줘요.
이 함수는 다음 두 조건이 모두 충족되면 게이지 메트릭 쿼리에 자동으로 추가됩니다:
- 메트릭이 규칙적이고 일관된 제출 간격을 가지며 Metrics Summary에도 지정되어 있는 경우
- 메트릭이
SUM by로 집계되는 경우 (예:sum: mygaugemetric{*})
여기 부정확한 스파이크가 있는 원래 쿼리(보라색)와 적절한 가중 계산을 적용한 쿼리(초록색)의 예시 그래프가 있습니다:
weighted() 수정자에 대한 자세한 내용은 weighted()는 어떻게 동작하나요?를 참고하세요.
기타 함수 (Other functions)
사용할 수 있는 다른 함수들을 확인해 보세요:
- 알고리즘 (Algorithmic): 메트릭에 이상 탐지(Anomaly) 또는 이상치(Outlier) 탐지를 적용합니다.
- 산술 (Arithmetic): 메트릭에 산술 연산을 수행합니다.
- 카운트 (Count): 메트릭 값 중 0이 아니거나 null이 아닌 값을 셉니다.
- 제외 (Exclusion): 메트릭의 특정 값을 제외합니다.
- 보간 (Interpolation): 메트릭의 기본값을 채우거나 설정합니다.
- 랭크 (Rank): 메트릭의 일부 하위 집합만 선택합니다.
- 레이트 (Rate): 메트릭에 대한 사용자 지정 미분값을 계산합니다.
- 회귀 (Regression): 메트릭에 머신러닝 함수를 적용합니다.
- 롤업 (Rollup): 메트릭에 사용되는 원시 데이터 포인트 수를 제어합니다.
- 타임시프트 (Timeshift): 메트릭 데이터 포인트를 타임라인을 따라 이동합니다.