Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

넷데이터 push or pull? #18

Open
xx10222 opened this issue Mar 27, 2021 · 0 comments
Open

넷데이터 push or pull? #18

xx10222 opened this issue Mar 27, 2021 · 0 comments
Assignees

Comments

@xx10222
Copy link
Member

xx10222 commented Mar 27, 2021

Netdata Research

push vs pull

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

  • push : 각각 모니터되는 서버에서 주기적으로 모니터링 서버로 데이터를 보내는 방식
  • pull : 각각 모니터되는 서버에서 데몬만 돌고 있고, 모니터링 서버에서 request를 던져서 pull 하는 방식

이 중에서 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 방식을 사용하는 것으로 보인다.

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

@xx10222 xx10222 self-assigned this Jun 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant