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