Prometheus 란?

작성자 이호영 수정일 2023-01-06 11:28

#prometheus

들어가며

  • SpakilingSoDA에서 사용되는 prometheus에 대해서 알아봅니다.



Prometheus란?

  • 오픈 소스 시스템 모니터링 경고 툴입니다.
  • 모듈으로는 server, client library, exporters, alertmanager, pushgateway가 있습니다.  
  • Exporter가 정보는 수집하여 Http end point를 열어 prometheus가 데이터를 수집해 갈 수 있도록 합니다.
  • 스크랩한 모든 정보를 로컬에 저장하고 이 데이터에 대한 규칙을 실행하여 time별 집계 및 기록, 경고 생성합니다.



Prometheus 주요 기능

  • metric 이름과 key/value 쌍으로 식별되는 time data가 있는 multi-dimensional data model
  • 유연한 쿼리 언어
  • Pull 방식으로 client들에 접근해서 데이터 수집
  • 다양한 그래프 및 대시보드 지원 


Prometheus - metric?

  • 사용자가 측정하고자 하는 application마다 달라지는데 웹 서버의 경우 요청 시간일 수 있고, 데이터베이스의 경우 활성 연결 수 혹은 활성 쿼리 수 등 다양합니다.
  • application이 특정 방식으로 작동하는 이유를 이해하는데 중요한 역할을 합니다.


Prometheus - 모듈

- prometheus 구성 요소는 Go로 작성되어 정적 바이너리로 쉽게 빌드하고 배포 할 수 있습니다.

  • prometheus server : Exporter가 열어놓은 HTTP Endpoint에 접속해 metric을 수집하고 grafana를 연동해 대시보드 등 시각화
  • client library : application 코드 추적
  • pushgateway : pull 방식의 데이터 수집이 되지 않을 경우 수집된 metric을 prometheus server로 metric을 노출합니다.
  • exporter : 다른 시스템에서 metric을 prometheus metric으로 내보내는 데 사용(HAProxy,StartsD, Graphite 등)
  • alertmanager : 경고를 처리하는 경고 관리자

< prometheus 구성 요소 >

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


마무리

  • prometheus는 오류 상태에서도 시스템에 대한 사용 가능한 통계를 확인할 수 있습니다.
  • prometheus는 요청 당 100% 정확도가 필요한 경우 수집된 데이터가 충분히 자세하고 완전하지 않을 가능성이 있으므로 데이터 수집과 분석을 하는 다른 시스템과 함께 모니터링을 위해 사용하는 것을 추천합니다.

아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.

02-558-8300