티스토리 뷰

Spring Boot 애플리케이션에서 성능 지표를 수집하고, 이를 시각화하여 모니터링하는 방법을 소개합니다. 이 글은 Prometheus + Grafana를 활용한 방법으로, 처음 접하는 개발자도 이해할 수 있도록 쉽게 설명합니다.

왜 Metric이 필요할까?

서비스를 운영하다 보면 이런 질문이 생깁니다.

  • 현재 메모리는 얼마나 쓰고 있지?
  • CPU 사용량은 얼마나 되지?
  • 쓰레드 수는 어떻게 되나?
    이런 정보를 정량적으로 확인할 수 있는 도구가 Metric입니다.

Application 설정

애플리케이션의 Metric 정보는 Micrometer가 수집합니다. Actuator는 Mircrometer이 수집한 정보를 접근할 수 있는 URI를 제공합니다.

1. 의존성 추가

// build.gradle
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-registry-prometheus'

2. application.yml 설정

management:
  endpoints:
    web:
      exposure:
        include:
          - health
          - info
          - metrics
          - prometheus

3. Actuator Endpoints 확인

설정 후 애플리케이션을 실행하면 아래 경로에서 Metric 정보를 확인할 수 있습니다:

URL 설명
http://localhost:8080/actuator/metrics 제공되는 메트릭 이름 목록
http://localhost:8080/actuator/metrics/jvm.memory.used 특정 지표의 상세 값
http://localhost:8080/actuator/prometheus Prometheus가 수집할 수 있는 포맷

Prometheus 설치 및 설정

Prometheus란?
다양한 시스템에서 Metric을 수집하는 오픈소스 모니터링 도구 입니다.

Prometheus를 실행하기 위해 prometheus.yml 파일을 생성하고 아래와 같이 설정 파일을 작성합니다.

global:
  scrape_interval: 5s

scrape_configs:
  - job_name: 'spring-boot'
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['host.docker.internal:8080']

Docker로 Prometheus + Grafana 실행하기

Docker로 Prometheus와 Grafana를 실행합니다. Docker가 설치되어 있다면, docker-compose.yml 파일을 을 만들고 다음과 같이 작성합니다.

version: '3'

services:
  prometheus:
    image: prom/prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml

  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"

설정파일을 입력 후 아래 명령을 수행하여 컨테이너를 생성합니다.

docker compose up -d

Grafana, Prometheus 컨테이너 가 생성이 완료되면 아래 주소로 접속해 확인합니다.

docker-compose란?
여러개의 Docker 컨테이너(예: Prometheus, Grafana)를 한 번에 실행/관리할 수 있게 해주는 도구
하나하나 docker run 명령어로 실행할 필요가 없음

Grafana - Promethues 연결

Spring Boot -> Prometheus -> Grafana 이렇게 데이터가 흘러갑니다. 데이터가 잘 전달되는지 확인하는 단계입니다.

1. Prometheus에서 메트릭 수집 확인

http://localhost:9090

상단 url 접속 후 검색 창에 up 입력 후 Execute 실행하여 Spring Boot와 연결이 잘 됐는지 확인합니다.

  • 결과가 1이면 Spring Boot에서 메트릭[^1] 수집 성공입니다.

2. Grafana에서 Prometheus 연결

Grafana와 Prometheus도 연결이 필요합니다. 아래 절차대로 연결을 수행합니다.

Data sources 추가


Add data source → Prometheus 선택

Connectionhttp://prometheus:9090 입력 후 Save & Test → 성공 메시지 확인

시각화 대시보드 생성

마지막으로 시각화 대시보드를 생성합니다. 직접 만드는건 아니고 만들어져 있는 대시보드를 import 합니다.(Spring Boot용 공식 또는 커뮤니티 대시보드 - Dashboard ID 4701)

  • Grafana 왼쪽 메뉴 → Dashboards → + New → Import
  • Dashboard ID: 4701 입력 → Load
  • Data source로 Prometheus 선택
  • Import 클릭!

4701 입력 후 Load !!

성공~! 이제 다양한 정보들이 시각화 되어 나타납니다.

 

[^1]: Metric이란 컴퓨터의 시스템, 애플리케이션 등에서 성능 정보를 수치화한 데이터이다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함