MongoDB를 사용한 이상 감지 기능이 있는 메트릭 모니터링 앱

내 제출 개요



메트릭 수집기를 예약하여 다양한 외부 서비스에서 측정값을 수집하고 선택적으로 새 값에 대한 이상 감지를 실행합니다.

이 프로젝트는 MongoDB를 스토리지 시스템으로 사용하여 데이터를 시계열 항목으로 저장합니다.

경험을 완성하려면 시각화 도구가 필요합니다. 다행히 Mongo는 Mongo Atlas에서 직접 사용할 수 있는 Mongo 차트를 제공합니다.

제출 카테고리:



프라임 타임

코드 링크



코드는 다음에서 찾을 수 있습니다.


마달린파시 / 모니터링앱_mongodb






Mongodb 시계열을 사용하는 메트릭 모니터링 앱


설명


다양한 서비스에 대한 메트릭 수집기를 예약하고 새 값에 대해 이상 감지를 실행합니다.

시작하기



전제 조건


컴퓨터에 Docker 및 Docker Compose가 설치되어 있는지 확인합니다.
MongoDB 5.0 이상이 설치된 MongoDB Atlas 클러스터를 생성합니다.
보안상의 이유로 .env는 저장소에 포함되지 않았습니다. 사용 가능한 구성 변수는 .env.sample 내부에 제공됩니다. 앱을 실행하기 전에 모든 구성 변수를 설정해야 합니다.

앱 실행


이 앱을 실행하는 것은 다음을 실행하는 것만큼 쉽습니다.
$ docker-compose build
$ docker-compose up

개요

docker-compose.yml 파일을 시작으로 이 애플리케이션이 메인 웹앱 서비스와 스케줄링 서비스(이 경우 celery)로 분할된 것을 볼 수 있습니다.
메트릭 수집은 주로 celery 작업자가 수행합니다. metrics_web 서비스는 외부 서비스에서 메트릭을 푸시하는 방법만 제공합니다(스케줄링이…

View on GitHub

더 많은 것을 읽으시려면 위를 클릭하세요.

추가 정보



프로젝트를 테스트하기 위해 3개의 메트릭을 만들었습니다. 그 중 2개는 무작위로 생성되고(이름에서 알 수 있듯이) 다른 하나는 지난 15분 동안의 Dev.to 게시물 수입니다(저는 15분을 선택했기 때문에 데이터를 너무 오래 기다림).

첫 번째 스크린샷에서 지난 15분 동안의 게시물 수와 random.randrange(1, 100)에 의해 반환된 값을 나타내는 또 다른 그래프를 볼 수 있습니다.



두 번째 스크린샷에서 무작위로 생성된 두 번째 메트릭(오른쪽)과 이상 예측 플롯(왼쪽)을 볼 수 있습니다. 점수가 -1 이면 이상으로 간주됩니다.

보시다시피, 메트릭의 무작위성과 적은 데이터 포인트로 인해 이상 예측은 우리에게 실질적인 통찰력을 제공하지 않습니다.



내장



Flask : Flask는 경량 WSGI 웹 애플리케이션 프레임워크입니다.

MongoDB : 고성능, 고가용성 및 손쉬운 확장성을 위해 개발된 오픈 소스 NoSQL 데이터베이스입니다. 또한 시계열 컬렉션을 제공합니다.

Celery : 실시간 처리에 중점을 두면서 작업 예약도 지원하는 작업 대기열입니다.

Docker : 애플리케이션 개발, 배송 및 실행을 위한 개방형 플랫폼

scikit-learn : 예측 데이터 분석을 위한 간단하고 효율적인 도구

좋은 웹페이지 즐겨찾기