배경
Network Operations Center에서 일하고 있으며 컴퓨터 시스템 및 성능을 모니터링합니다. 모니터링 할 주요 지표 중 하나는 현재 서버에 연결된 많은 방문자 / 고객입니다. 이를 보이기 위해 (Ops 팀) 시계열 데이터와 같은 메트릭을 수집하고 그래프를 그립니다. Graphite 는 우리가 그것을 할 수있게 해줍니다.이 API는 갑작스런 하락 (주로) 및 기타 변경이 발생하면 팀에 알리기 위해 경고 시스템을 구축하는 데 사용하는 매우 풍부한 API를 가지고 있습니다. 지금은 평균 값을 기반으로 정적 임계 값을 설정했지만 낮과 주 동안 다른로드 (계절 요인)로 인해 잘 작동하지 않습니다 (많은 오탐이 있습니다).
다음과 같이 보입니다 :
실제 데이터 (한 통계에 대한 예, 15 분 시간 범위, 첫 번째 숫자는 사용자 수, 두 번째 시간 소인) :
[{"target": "metric_name", "datapoints": [[175562.0, 1431803460], [176125.0, 1431803520], [176125.0, 1431803580], [175710.0, 1431803640], [175710.0, 1431803700], [175733.0, 1431803760], [175733.0, 1431803820], [175839.0, 1431803880], [175839.0, 1431803940], [175245.0, 1431804000], [175217.0, 1431804060], [175629.0, 1431804120], [175104.0, 1431804180], [175104.0, 1431804240], [175505.0, 1431804300]]}]
내가 성취하려고하는 것
최근 데이터 포인트를 수신하고 과거 평균과 비교하여 갑작스런 변경이나 드롭이 발생하면 경고하는 Python 스크립트를 만들었습니다. 계절성으로 인해 "정적"임계 값이 제대로 작동하지 않고 스크립트가 위양성 경고를 생성합니다. 경고 알고리즘을보다 정확하게 개선하고 경고 임계 값을 지속적으로 조정하지 않고 작동하도록하고 싶습니다.
내가 필요로하는 조언과 발견 한 것들
인터넷 검색을 통해 이상 감지 (관리되지 않는 알고리즘)를위한 기계 학습 알고리즘을 찾고 있다고 생각했습니다. 추가 조사에 따르면 톤이 많으며 내 경우에 어떤 것이 적용되는지 이해하기가 매우 어렵습니다. 제한된 수학 지식으로 인해 정교한 학술 논문을 읽을 수 없으며 현장 초보자에게 간단한 것을 찾고 있습니다.
나는 파이썬을 좋아하고 R에 대해 조금 알고 있으므로이 언어에 대한 예제를 보게되어 기쁩니다. 문제를 해결하는 데 도움이되는 좋은 책이나 기사를 추천하십시오. 시간 내 주셔서 감사합니다
유용한 링크
유제:
외부 자원 :
auto.arima
R의 우수한 forecast
패키지 기능을 사용하여 지속적으로 주기적 예측을 작성하여 경고를 설정하는 것이 었습니다 ( jstatsoft.org/v27/i03/paper 참조 ). level
파라미터를 조정하여 신뢰 수준을 조정할 수 있습니다 ( 예 :) data.model <- auto.arima(data.zoo, ic = c("bic")); data.prediction.warningLimits <- forecast(data.model, h=1, level=0.99)
.