Chapter 1. Basic Concept

구성 요소

arcus-hubble-v3의 구성 요소는 다음과 같습니다.

Exporter(ARCUS Exporter, Node Exporter, ZK Exporter)

  • metric 데이터를 수집하여 제공하는 하나의 HTTP 서버입니다.

  • VictoriaMetrics로부터 요청이 오면 metric 데이터를 수집하여 전달합니다.

  • Exporter 종류

    • Arcus Exporter: stats 명령을 통해 Arcus 캐시 프로세스 상태를 수집합니다.

    • Node Exporter: Arcus 캐시가 구동된 장비의 리소스 상태를 수집합니다.

    • Zk Exporter: mntr 명령을 통해 ZooKeeper 프로세스 상태를 수집합니다.

Orbiter

  • Grafana 대시보드 변수 혹은 ZooKeeper/ARCUS 클러스터 구성 정보에 대한 값을 반환합니다.

  • Grafana 대시보드 변수는 대시보드 자체에서 조건을 통해 값을 결정할 수 없는 등 커스텀이 제한적입니다. 따라서 Orbiter에 요청을 보내 특정 로직을 거친 값을 받아 사용하도록 합니다.

VictoriaMetrics

  • 정해진 주기로 exporter의 url 호출하여 metrics 데이터를 받아 효율적으로 압축된 형태로 저장합니다.

  • Pull 방식으로 metric을 수집하므로, 다양한 운영 환경에 유연하게 대처할 수 있습니다.

  • 최신 데이터를 빈번한 간격으로 저장하는 Short Term 프로세스와 장기 데이터를 드문 간격으로 저장하는 Long Term 프로세스를 각각 구동하여 오랜 기간 데이터를 효율적으로 저장하도록 합니다.

Promxy

  • Grafana로부터 promQL 질의가 오면, 해당하는 metrics 데이터를 반환해줍니다.

  • 여러 VictoriaMetrics 인스턴스를 하나의 엔드포인트로 통합하는 프록시 역할을 합니다.

VMAlert

  • VictoriaMetrics에서 제공하는 알림 시스템입니다.

  • VictoriaMetrics에 존재하는 metrics 데이터를 기반으로 알림 규칙을 주기적으로 평가하여, 임계값을 초과하거나 이상 상태가 감지되면 알림을 생성합니다.

  • 생성된 알림은 Alertmanager에 전달하여 각 엔드포인트로 전파되도록 합니다.

Alertmanager

  • SMS, 이메일, 슬랙 등으로 알림 메시지를 발송하는 프로세스입니다.

  • VMAlert 프로세스에서 지정한 알람 규칙에 의해 발생한 알람이 AlertManager로 전달되어 각 Receiver에게 알림을 전파합니다.

Grafana

  • promQL을 사용해 Promxy에 질의를 보내 metrics 데이터를 가져와 시각화합니다.

  • 대시보드 변수와 ZooKeeper/ARCUS 클러스터 구성 정보는 Orbiter에 요청하여 얻어옵니다.

구성도

구성 요소 배치

  • 아래 그림은 arcus-hubble-v3의 구성 요소를 나타냅니다.

  • 1대의 모니터링 장비에 Node Exporter를 제외한 모든 구성 요소가 설치되고, Node Exporter는 각 캐시 장비에 설치됩니다.

hubble-v3-downsample

메트릭 수집 및 조회 절차

  • 아래 그림은 arcus-hubble-v3의 메트릭 수집, 조회 과정을 나타냅니다.

  • 메트릭 수집 및 서비스 코드 단위의 집계는 Short Term VictoriaMetrics 프로세스에서 이뤄집니다.

  • 알람 규칙 검사 및 다운샘플링은 VMAlert 프로세스에서 이뤄집니다. 다운샘플링된 메트릭은 Long Term VictoriaMetrics 프로세스에 전달되고, 알람 이벤트는 AlertManager로 전달됩니다.

  • 사용자가 Grafana에 접근하여 특정 구간의 메트릭 조회 요청을 보내면 Promxy에서 단기/장기 보관용 VictoriaMetris에 모두 요청을 보내고, 질의문에 의해 둘 중 한 군데에서만 조회 결과가 오게 됩니다. 이는 Grafana 대시보드에 작성된 질의문 특성에 의한 효과입니다.

hubble-v3-downsample

Last updated