[TIL] Grafana & Prometheus, Rolling Policy, 시계열 메트릭

2025-05-23 TIL

📝 TIL (Today I Learned)
🔗 원본 이슈: #60
📅 작성일: 2025-05-23
🔄 최종 수정: 2025년 05월 27일


🍀 새롭게 배운 것

1️⃣ Grafana & Prometheus – 시계열 메트릭 시각화 도구

📊 Prometheus

  • CNCF(Cloud Native Computing Foundation)에서 관리하는 시계열 메트릭 수집 도구
  • 주로 인프라/애플리케이션 성능 모니터링에 사용됨
  • Pull 방식으로 타겟 서버의 메트릭을 주기적으로 수집함
  • 메트릭 쿼리 언어: PromQL
  • 내장된 시계열 DB에 메트릭 저장

예시 메트릭:

http_requests_total{method="GET", status="200"} 1523
cpu_usage_seconds_total{core="1"} 82.3

📈 Grafana

  • Prometheus 등의 시계열 데이터 소스를 시각화하는 대시보드 도구
  • 사용자가 커스터마이징 가능한 대시보드/그래프/알람을 만들 수 있음
  • Prometheus 외에도 Loki(로그), InfluxDB, MySQL, Elasticsearch 등 다양한 소스와 연동 가능
  • 주요 사용 예:

    • CPU/메모리/디스크 사용률 실시간 모니터링
    • 서비스 요청 응답 시간 추적
    • 메트릭 기반 알림 설정 (ex. 5분간 에러율이 5% 넘으면 슬랙 알림)

🧩 Grafana + Prometheus = DevOps 핵심 콤보

도구역할
Prometheus메트릭 수집 및 저장
Grafana메트릭 시각화 및 알람

두 도구는 함께 사용할 때 진가를 발휘한다. Prometheus가 메트릭 데이터를 모으고, Grafana가 이를 시각적으로 표현해준다.


2️⃣ Rolling Policy (로그 롤링 정책)

🧾 개념

  • 로그 파일이 커지거나 오래되었을 때, 자동으로 새로운 파일로 교체하거나 백업하는 정책
  • 로그 관리를 자동화해서 디스크 과부하를 방지하고, 오래된 로그를 보관하거나 삭제할 수 있게 해줌

📁 적용 예 – logback-spring.xml 예시:

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>logs/app-%d{yyyy-MM-dd}.log</fileNamePattern>
    <maxHistory>30</maxHistory> <!-- 30일간 보관 -->
</rollingPolicy>

🎛️ 주요 타입

정책 유형설명
TimeBasedRollingPolicy날짜별로 로그 파일 분리 (app-2025-05-14.log)
SizeBasedTriggeringPolicy특정 크기 초과 시 새로운 파일 생성 (app.log.1, .2…)
FixedWindowRollingPolicy번호 기반 순환 롤링 (app.1.log, app.2.log)

🚧 왜 중요한가?

  • 로그 파일이 무한히 커지지 않도록 제어
  • 백업 및 운영에 필요한 로그만 유지 가능
  • ELK/EFK 스택과 연동할 때도 파일 기반 로그를 안정적으로 관리

정리하자면, **“로그를 무한정 쌓지 말고, 잘라서 보관하고, 오래된 건 지우자!”**는 개념이다.


📌 오늘의 요약

개념핵심 기능
Prometheus메트릭 수집 및 저장 (시계열 DB)
Grafana메트릭 시각화 및 알림
Rolling Policy로그 용량/시간 기준 자동 분할 및 관리

3️⃣ 🕐 시계열 메트릭(Time Series Metrics)이란?

  • 시간(Time) + 값(Value) 이 쌍으로 구성된 데이터
  • 특정 지표가 시간에 따라 어떻게 변하는지를 보여줌

📊 예시:

시간CPU 사용률 (%)
2025-05-14 10:00:0030
2025-05-14 10:01:0035
2025-05-14 10:02:0070

이처럼 “시간에 따른 수치 변화”를 기록한 데이터가 바로 시계열 메트릭


📦 시계열 메트릭 수집 도구란?

이런 시간 기반 데이터자동으로 수집, 저장, 관리해주는 도구를 말합니다.

  • 대표적인 도구:
    • Prometheus
    • InfluxDB
    • Graphite
    • OpenTSDB

이들은 서버나 애플리케이션에서 CPU, 메모리, 요청 수, 에러율 같은 수치를 주기적으로 수집해서 시계열 DB에 저장한다.

🛠️ 예를 들어 Prometheus는?

  • 15초마다 모든 서버의 CPU 사용률, HTTP 요청 수 등을 수집
  • 내부에 시계열 전용 데이터베이스를 가지고 있어 시간 순서대로 저장
  • 나중에 Grafana 같은 도구로 꺾은선 그래프를 그릴 수 있음

📌 정리

용어의미
시계열 데이터시간에 따라 변화하는 수치 데이터 (예: CPU 70% → 50%)
시계열 메트릭 도구시간 기반 데이터를 주기적으로 수집/저장하는 시스템

시계열 메트릭 도구는 결국 **“시간의 흐름에 따라 시스템이 어떻게 작동하고 있는지 보여주는 도구”**