Skip to content

스프링 메트릭 모니터링 구성도

Moly edited this page Aug 8, 2024 · 2 revisions

메트릭 모니터링

메트릭 모니터링 필요 이유

  1. ec2 인스턴스에 접속하지 않고도 애플리케이션과 인프라의 현재 상태를 실시간으로 확인 가능
  2. 서버의 각종 수치들을 시각화하여 본다면 상태 파악하기 쉽다.
  3. 성능 저하나 이상 징후를 조기에 발견하여 알람을 받아 문제를 예방 가능

메트릭 모니터링 구성 흐름

  1. 메트릭 생성 (Spring 애플리케이션 - Actuator, Micrometer)
  2. 메트릭 수집 (Prometheus)
  3. 저장 및 쿼리 (Prometheus)
  4. 시각화 및 알림 (Grafana)

메트릭 모니터링 구성도

구성 파헤치기

1. 메트릭 생성 (Code-zap EC2 Instance)

Spring Boot Actuator

  • 애플리케이션 상태, 성능 지표 등의 운영 정보를 제공
  • /actuator 엔드포인트를 통해 다양한 정보에 접근 가능

Micrometer

  • 애플리케이션 메트릭을 생성하고 수집하는 파사드 라이브러리
  • Prometheus 등 다양한 모니터링 시스템과 호환
    • 우리는 Prometheus을 사용할 것이기 때문에 Prometheus Micrometer를 사용
    • Prometheus Micrometer가 Prometheus가 필요한 형식에 맞춰 액추에이터의 매트릭을 변환해줌

2. 메트릭 수집 (Prometheus)

Prometheus는 Code-zap-monitoring EC2 Instance에서 실행

  • 설정된 간격으로 타겟 시스템(이 경우 Spring 애플리케이션)의 메트릭을 수집(스크래핑)

설정 예시 (prometheus.yml):

yamlCopyscrape_configs: # 수집 설정 정의
  - job_name: 'spring-actuator'
    metrics_path: '/actuator/prometheus' # 메트릭을 가져올 엔드포인트(Spring Boot Actuator의 Prometheus 엔드포인트)
    static_configs:
      - targets: ['code-zap-ec2-ip:8080'] # 실제 메트릭을 수집할 대상의 주소와 포트(실제 EC2 인스턴스의 IP 주소와 Spring Boot 애플리케이션이 실행되는 포트)

3. 저장 및 쿼리 (Prometheus)

  • Prometheus는 수집한 메트릭을 내장 시계열 데이터베이스에 저장
  • PromQL(Prometheus Query Language)을 사용하여 저장된 데이터를 쿼리 가능

4. 시각화 및 알림 (Grafana)

Grafana도 Code-zap-monitoring EC2 Instance에서 실행

  • Prometheus를 데이터 소스로 설정하여 수집된 메트릭에 접근
  • 다양한 차트와 그래프를 통해 메트릭을 시각화
    • 대시보드를 구성하여 핵심 지표를 한눈에 볼 수 있음
  • 임계값 기반의 알림을 설정하여 문제 상황을 즉시 감지 가능

⚡️ 코드zap

프로젝트

규칙 및 정책

공통

백엔드

프론트엔드

매뉴얼

백엔드

기술 문서

백엔드

프론트엔드


Clone this wiki locally