DevOps

[Prometheus] 1. Introduction

noahkim_ 2025. 5. 31. 21:51

1. Prometheus

  • 시스템과 애플리케이션의 상태를 모니터링하기 위한 도구
  • 주로 애플리케이션에서 발생하는 메트릭을 수집하고 저장한 후, 이를 조회/시각화/알림에 활용함
  • 오픈소스 (CNCF 공식 프로젝트)

 

특징

기능 설명 예 / 특징
다차원 데이터 모델
시계열 데이터에 key-value 형식의 Label을 붙일 수 있음
같은 메트릭도 다양한 기준으로 구분할 수 있음
독립 실행 가능
별도 분산 스토리지 없이 단일 서버만으로 수집 및 동작 가능
쉽게 도입 가능
Pull 기반 수집 (scrape) Prometheus 서버가 직접 대상 서버의 HTTP endpoint에 접근하여 메트릭을 가져옴
중앙에서 수집 주기 관리 가능
Push 일부 지원
짧게 실행되고 종료되는 작업일 경우 사용됨
Push Gateway 활용

 

기능

기능 설명 예 / 특징
PromQL 시계열 데이터 전용 쿼리 언어 제공 집계, 필터링, 계산에 특화됨
서비스 디스커버리 / 정적 설정
수집 대상을 정적으로 적어 찾거나 서비스 디스커버리를 통해 동적으로 찾을 수 있음
ex. Consul, Kubernetes
시각화 도구 연동 가능 저장된 메트릭을 다양한 대시보드 형태로 시각화 가능 Grafana 등과 연동

 

2. Metrics

  • 시스템 상태를 숫자로 나타낸 지표
  • 숫자 데이터를 시간의 흐름에 따라 기록하여 상태 뿐만 아니라 변화 추이까지 볼 수 있게 해줌
  • ex) 웹서버: 요청 수, 응답 시간 등
  • ex) db: 연결 수, 쿼리 수 등

 

3. 아키텍처

구성 요소 역할 설명 특징 / 예
Prometheus 서버
메트릭을 스크래핑(Pull)하여 시계열 데이터를 저장함
 
클라이언트 라이브러리
애플리케이션에 직접 코드로 메트릭 삽입
예: Counter, Gauge 등
Exporter 외부 시스템의 메트릭 수집기 예: HAProxy, Redis, Node 등
Push Gateway
짧게 실행되는 작업이 메트릭을 Prometheus에 푸시할 수 있도록 중간 수단 제공
 
Alertmanager
알림 규칙 기반으로 Alert를 생성 
이메일, 슬랙 등으로 전송함
기타 도구들
다양한 지원 도구들 포함
예: 데이터 변환, 백업, 통합 등

 

 

출처

'DevOps' 카테고리의 다른 글

[OpenTelemetry] 1. What is OpenTelemetry?  (0) 2025.09.19
[Prometheus] 2. Concepts  (0) 2025.05.31