SantaBPF / santabpf

MIT License
6 stars 1 forks source link

넷데이터 push or pull? #18

Open xx10222 opened 3 years ago

xx10222 commented 3 years ago

Netdata Research

push vs pull

먼저 데이터 통신 방식에는 2가지가 있다.

이 중에서 netdata는 무슨 방식을 사용하는지 정리해보도록 하겠다.

Netdata

우선 넷데이터는 리눅스 전용 실시간 모니터링 프로그램으로 현재 사용중인 컴퓨터의 RAM과 같은 하드웨어 사용량 등을 표나 차트등으로 정리되어 한눈에 쉽게 매순간마다 실시간으로 확인할 수 있다.

넷데이터는 그라파나와 달리 collector를 따로 설치할 필요 없이 시스템 내부 collector가 매트릭들을 수집하고 이를 js를 통해 대시보드로 보여준다.

아래는 넷데이터 깃허브에서 가져온 netdata의 전체적인 아키텍처를 표현한 그림이다. image

또한 netdata의 github에 보면 REST API를 통해 collector로부터 data를 가져오는 것으로 보인다.

REST(Representational State Transfer)는 HTTP를 사용하는 소프트웨어 아키텍처 스타일로, 자원의 이름으로 구분하여 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. 이를 사용한 API가 REST API이다.

아래는 넷데이터의 api 깃허브 주소이다. https://github.com/netdata/netdata/tree/master/web/api

또한 netdata의 api 코드를 OAS를 위한 프레임워크인 swagger editor를 통해 볼 수 있다. 아래는 그의 일부를 캡처한 것이다. image

이는 netdata api swagger editor 주소이다. https://editor.swagger.io/?url=https://raw.githubusercontent.com/netdata/netdata/master/web/api/netdata-swagger.yaml

마무리

정리하자면 넷데이터는 내부 콜렉터를 통해 매트릭들을 수집해오고 이를 api를 통해 필요한 data들을 요청하여 가져오는 pull 방식을 사용하는 것으로 보인다.

(사실 별 내용은 아니지만 정리해두면 좋을 것 같아서 정리해보았다!)