Chapter 1. Basic Concept
구성 요소
arcus-hubble-v3의 구성 요소는 다음과 같습니다.
Exporter(ARCUS Exporter, Node Exporter, ZK Exporter)
metric 데이터를 수집하여 제공하는 하나의 HTTP 서버입니다.
Prometheus로부터 요청이 오면 metric 데이터를 수집하여 전달합니다.
Exporter 종류
Arcus Exporter: Arcus 캐시 프로세스 상태 수집
Node Exporter: Arcus 장비의 system resource 수집
Zk Exporter: ZooKeeper 서버 상태 수집
Orbiter
Grafana 요청(dashboard 템플릿 변수)에 대한 ARCUS 클러스터 구성 정보를 ZooKeeper에 질의하여 전달합니다.
Grafana는 커스텀이 제한적이어서, 복잡한 조건에 의한 값을 결정하는 것이 불가능합니다. 이러한 로직을 구현하여 제공하는 기능도 있습니다.
Prometheus
정해진 주기로 exporter의 url 호출하여 metrics 데이터를 받아, 시계열 데이터로 저장하고 이를 효율적으로 관리합니다.
시간별 데이터의 difference를 구하는 방식으로 유의미하게 metrics 데이터를 압축해 저장합니다.
grafana로부터 promQL 질의가 오면, 해당하는 metrics 데이터를 반환해줍니다.
Pull 방식으로 metrics 수집하므로, 다양한 운영 환경에 유연하게 대처할 수 있습니다.
Grafana
promQL을 사용해 prometheus에 질의를 보내 metrics 데이터를 가져와 시각화합니다.
Dashboard의 템플릿 변수 값에 해당하는 ARCUS 클러스터 구성 정보는 Orbiter에 요청하여 얻어옵니다.
구성도
아래 그림은 arcus-hubble-v3의 구성도 예제 입니다.
2대의 캐시 장비(m1, m2)에는 서비스 코드가 "test"와 "repl"인 캐시 노드가 각각 구동되어 있습니다.
1대의 hubble 장비에는 hubble 대부분 구성 요소들이 설치되고, Node Exporter만 캐시 장비에 설치됩니다.
ZooKeeper 클러스터는 zk-1:2181, zk-2:2181, zk-3:2181 세 개의 호스트로 구성되어 있습니다.
Last updated