티스토리 뷰

What is Prometheus?


출처 : https://prometheus.io/docs/introduction/overview/


프로메테우스는 오픈소스 Monitoring/Alert 솔루션입니다. 2012년 부터 시작된 프로젝트인데 2016년 CNCF(Cloud Native Computing Foundation)의 두 번째(Kubernetes에 이어) hosted project가 되면서 많은 클라우드 제공자의 관심을 받고 있는, 표준 오픈소스 모니터링으로 자리잡고 있습니다.


* 오픈소스 시장은 많이 쓰면 표준이라는 수식어가 달리는 것 같습니다.



특징


프로메테우스의 주요 특징을 요약하면 아래와 같습니다.


  • 시계열을 기반으로 하는 다차원(Multi-Dimensional) 데이터 모델을 제공
  • 유연한 쿼리 언어
  • 분산 스토리지 필요 없음; 단일 서버 노드 자동화 <- 프로세스가 구동되는 서버의 로컬 저장소를 사용함
  • HTTP 기반 pulling으로 시계열 데이터를 수집
  • 중간 게이트웨이를 통해 시계열 pushing 지원
  • Service Discovery 또는 정적 configuration을 통해 대상 찾음
  • 복수의 모드를 그래프화 하고 대시보드에 출력


구성요소


프로메테우스 ecosystem 은 수많은 컴포넌트로 구성되며 이중 많은 것들은 선택사항입니다.


  • 프로메테우스 서버 - 시계열 데이터를 수집하고 저장
  • 데이터를 시각화하는 애플리케이션 코드를 작성하는 클라이언트 라이브러리
  • 단 시간 작업(short-lived job)을 위한 push gateway
  • HAProxy, StatsD, Graphite 등을 위한 특수 목적을 가지는 exporter
  • 이벤트 alerting을 위한 alertmanager
  • 다양한 지원 툴


대부분의 프로메테우스 컴포넌트는 Go로 제작되어 있습니다.



아키텍처



프로메테우스는 데이터를 수치화하는 Job, 직접 또는 push gateway를 이용하는 short-lived job에서 값을 전달받은 메트릭으로 부터 데이터를 수집합니다. 모든 수집된 데이터는 로컬에 저장되며 이 데이터를 기반으로 룰을 실행하여 새로운 시계열 데이터를 기록하거나 집계하고 이벤트(alert)를 생성합니다.  Grafana 또는 다른 API consumer 들은 이렇게 수집된 데이터를 시각화하는데 사용됩니다.


언제 적합합니까?


프로메테우스는 수치로 기록된(purely) 모든 시계열 데이터를 처리하는데 뛰어납니다. 머신 중심의 모니터링 뿐만 아니라 고도의 다이나믹 서비스 중심 아키텍처(dynamic service oriented architecture)에 적합합니다(컨테이너 기반의 MicroService 같은 구조를 말하는듯). 마이크로서비스의 세계에서 다차원 데이터를 수집하고 쿼리하는데 특히 강점을 가집니다.


프로메테우스는 안정성을 위해 설계되었으며 문제를 빠르게 파악할 수 있습니다. 각각의 프로메테우스 서버는 standalone이며, 네트워크 스토리지나 다른 리모트 서비스에 의존성을 가지지 않습니다. 인프라스트럭처의 한 부분에서 장애가 생겨도 서비스 가능하며 이를 위해 인프라스트럭처를 확장할 필요도 없습니다.


언제 적합하지 않습니까?

프로메테우스의 가치는 신뢰성입니다. 시스템의 통계자료를 언제나 볼 수 있고 장애 상황에서도 그렇습니다. 만약 100%의 정확성이 필요하다면, 예를 들어 요청 당 과금이 되야 한다는 등과 같이, 프로메테우스는 충분히 자세한 정보를 주지 않을 수 있으므로 좋은 선택이 아닙니다. 이 경우는 과금을 위한 자료를 수집하고 분석하는 다른 시스템을 사용해야 하며 프로메테우스는 전체 모니터링 중 일부를 담당해야 합니다.




요약

  • 프로메테우스는 CNCF의 두 번째 프로젝트이며 클라우드를 위한 오픈소스 표준 모니터링 툴로 대두되고 있다.
  • Grafana 와 같은 오픈소스 대시보드 툴과 연계할 수 있다.
  • 수치 중심의 시계열 데이터를 처리하는데 탁월하다.
  • 마이크로서비스와 같이 변화무쌍하고 작은 단위의 군집을 모니터링하기 좋다.
  • 신뢰성이 좋다. 그러나 100% 정확성이 필요한 모니터링에는 적합하지 않다. 





공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함