Skip to content

Latest commit

 

History

History
35 lines (27 loc) · 2.32 KB

Prometheus.md

File metadata and controls

35 lines (27 loc) · 2.32 KB

Prometheus란?

Prometheus는 시스템 및 서비스의 상태를 모니터링하는 인기 있는 오픈소스 모니터링 시스템

다양한 대상(Target)에서 시간 경과에 따른 지표(Metric)를 수집하여 시계열 데이터베이스 형태로 저장

메트릭 수집은 주로 HTTP 엔드포인트를 통한 Pull 방식이고,
서비스 디스커버리 기능을 통해 동적인 환경에서 실행 중인 서비스를 자동으로 탐지/모니터링 가능
또한, Exporters를 활용하여 Prometheus가 기본적으로 지원하지 않는 애플리케이션의 메트릭도 수집 가능

Prometheus의 쿼리 언어인 PromQL을 사용
→ 수집된 데이터를 기반으로 쿼리를 실행 / 결과를 Grafana와 같은 시각화 도구를 통해 다양한 형태로 조회 가능

또한, 설정된 조건에 따라 경고 규칙을 정의, 임계값을 초과하는 등의 문제가 발생 시
→ 경고를 발송하여 운영자가 신속하게 문제를 인지하고 대응할 수 있도록 도와줌

Prometheus 데이터 저장 방식

Prometheus에서 WAL(Write-Ahead Log)과 청크(chunk)는 Prometheus의 데이터 저장 메커니즘의 핵심 부분이다.
Prometheus는 시계열 데이터를 효율적으로 저장하기 위해 청크라는 단위로 데이터를 저장하고, WAL을 사용하여 데이터의 안정성을 보장한다.

Prometheus 의 구조

image

장단점

장점

  • Pull 방식의 구조를 채택해서 모든 메트릭 정보를 중앙 서버로 보내지 않아도 됨
  • 다양한 써드파티 프로그램과의 연동을 통해 운영이 쉬움
  • 구조가 복잡하지 않고 간단
  • 모든 데이터를 수집하지 않고 일정 주기로 메트릭을 수집해 애플리케이션에 무리 없음

단점

  • 클러스터링이 불가능
  • 스케일을 키우고 싶으면 프로메테우스를 여러개 구축해 계층형으로 연결해야 함
  • 모든 데이터를 수집하지 않아서 대략적인 데이터 흐름을 보긴 좋지만 모든 데이터를 필요로하는 목적에는 부적합
  • APM(Application Performance Monitoring)같이 모든 로그를 추적해야하는 상황에는 좋지 않음
  • Pulling하는 그 순간의 스냅샷 정보만 알 수 있음