Backend

[Datadog] Anomaly Detection 리서치

산희 2024. 7. 4. 20:28

Anomaly Detection

메트릭의 과거 트렌드, 계절별 패턴을 비교 분석하여 메트릭이 정상적인 범위를 벗어 났는지 탐지하는 데이터독 기능


그래서 언제 사용?


모니터링 하고자 하는 Elasticsearch 클러스터의 검색 성능과 관련된 지표에서 규칙적인 패턴이 발견됨.


이상 징후 모니터를 통해 기대 하는 것 (가설)

  • Datadog의 Anomaly Monitor를 통해 검색 지표를 모니터링 하여 비정상적인 부하를 조기에 감지하여 알람을 받을 수 있다.
  • 이상 징후 알람으로 조기 조치가 가능 해진다면 시스템 다운타임을 방지하고, 사용자 경험을 개선하는 데 도움을 줄 수 있다.

설정 방법

  1. Datadog - Monitors
  2. Choose the detection method > Anomaly Detection 선택


Define the metric

Anomaly Detection은 모니터링 쿼리에 대해 Historical View,Evaluation Preview 2가지가 제공됨.

그래프명설명

Historical View Evaluation Preview 보다 넓은 시간 범위에서 지표를 확인 할 수 있어 트렌드 파악에 용이
Evaluation Preview Alerting Window 보다 큰 범위가 제공되며, Anomaly Algorithm이 계산한 경계를 회색 영역으로 제공함.

Set alert conditions

알람 조건설명예시

Anomaly Detection 메트릭이 Anomaly Algorithm에 의해 생성된 회색 영역을 벗어나는 경우를 감지할 때 사용 되는 조건 above
Trigger Window (= Alert Window) Anomaly detection에서 알림을 트리거하기 위해 고려되는 특정 시간 범위 Evaluate the bounds for the last 1 hour
Recovery Window 메트릭이 정상지표로 탐지 되는 데 걸리는 시간 범위 Recover if the values are within the bounds for at least 1 hour
Alert Threshold Datadog의 Anomaly detection에서 알림을 발생시키는 데 사용되는 기준이며, 일정 시간 동안 Deviations로 정해진 안정 범위(회색 영역)를 벗어난 메트릭의 비율을 말합니다. 70%

Threshold가 높으면 많은 수의 데이터 포인트가 비정상 범위에 있어야 알림이 발생하고, 낮으면 적은 수의 데이터 포인트만으로도 알림이 트리거 됩니다.
Recovery Threshold Recovery Window 동안 메트릭 비율이 정상으로 간주되는 비율 30%

Recovery Threshold가 30%로 설정된 경우, Recovery Window 동안의 메트릭 중 30%만 비정상이어도 나머지 70%가 정상 범위에 있으면 알람이 해제

Recovery Window 크기

  • 문서에 따르면, Recovery Window는 Trigger Window의 사이즈와 동일하게 가져가는 것이 일반적입니다.
  • 하지만, Trigger와 Recovery 조건을 모두 충족시키는 상황을 피하기 위해 Trigger Window와 Alert Threshold에 따라 Recovery Window의 사이즈는 달라질 수 있습니다.


Recovery Window 크기 계산

- (최소 길이) Trigger Window * (1 - Threshold/100) + 1 min
- (최대 길이) Trigger Window 이상

Recovery Window 크기 계산 예시

- Threshold: 50%
- Trigger Window: 4h
- Recovery Window:
  - (최소 길이) 121 min (= 4h * (1-0.5) + 1min)
  - (최대 길이) 4h 이상
  • Recovery Window는 Trigger 시간 보다 조금 더 길어야만, Recovery 조건과 Trigger 조건을 동시에 만족하지 않게 됩니다.
  • 따라서 Recovery Window의 최소 길이는 Trigger Window와 동시 충족되는 상황을 피하기 위해 2시간(120분)보다 1분 더 긴 121분이 되어야 합니다.

Advanced option

Advanced options설명예시

Deviations 비정상 감지의 민감도를 설정하는 표준편차의 배수로, 정상 범위에서 얼마나 많은 표준 편차를 벗어난 것을 비정상으로 간주할지 정의 Evaluation View의 회색 영역
Algorithm 이상 감지 알고리즘의 종류 basic, agile, robust
Seasonality agile, robust 알고리즘에서 사용되는 메트릭의 패턴 hourly, daily, weekly
Daylight savings agile, robust 알고리즘의 daily, weekly 패턴에서 사용 되는 썸머타임(타임존) 옵션

Anomaly detection algorithms

알고리즘설명사용 예시

Basic Basic 알고리즘은 Seasonality를 보지 않고, 롤링 퀀타일이라는 통계적 기법으로 정상 범위를 계산합니다. 데이터가 비교적 안정적이고 예측 가능할 때 사용, 변동성이 크지 않고 일관된 패턴을 보이는 메트릭에 적합

Basic 알고리즘은 Alert Window 크기 만큼의 최근 데이터에서 계산된 퀀타일에서 구한 표준편차에 Deviations 값을 곱하여 정상 범위의 상한과 하한을 결정
Agile 메트릭의 최근 트렌드와 패턴 변화에 빠르게 적응 가능하여 웹 트래픽 모니터링, IT 인프라 모니터링 등..

알고리즘은 변동성이 더 높고, 빠르게 변하는 데이터에 적합
Robust 메트릭 최근 트렌드의 큰 변화나 중요한 이상 현상을 감지하는 데 초점을 맞춘 방법 장기적인 변화 또는 추세를 감지하는 데 이상적


장기적인 매출 감소나 증가 추세를 감지

Seasonality

각 Seasonality는 최소 3배 이상 많은 데이터를 가지고 있어야함.

(데이터를 집계해서 표준편차를 구하는 것 같음)

패턴설명예시

Hourly 한 시간전과 같이 동작하도록 예상 오후 5시15분이라면 오후 4시 15분, 오후 3시 15분 등과 같이 동작
Daily 오늘 시간이 지난 날의 시간처럼 동작할 것을 예상 오늘 오후 5시가 어제 오후 5시처럼 동작
Weekly 특정 요일이 지난 요일 처럼 동작하도록 예상함. 이번 화요일은 지난 화요일처럼 동작

Alert Conditions 사례 (by GPT)

장기적 이상 감지, 빠른 회복 확인:

* 장기적인 데이터 패턴이 중요한 시스템 *

- Trigger Window: 4시간
- Alert Threshold: 70%
- Recovery Window: 1시간 13분 -> 2시간
- Recovery Threshold: 30%

민감한 알람 설정, 완화된 회복 조건:

* 빠른 이상 감지가 중요한 민감한 시스템 *

- Trigger Window: 30분
- Alert Threshold: 50%
- Recovery Window: 30분
- Recovery Threshold: 20%

결론

아직은 Anomaly Detection을 적용하면서 처음 기대한 조기 예측에 따른 효과를 보지 못했다. 차차 서비스에 맞게 Threshold, Deviations, Algorithm 커스텀을 하면서 상황을 지켜봐야할 것 같다.

Deviations (표준편차) 1배수 / agile 알고리즘

Deviations (표준편차) 4배수, agile 알고리즘


Reference.