티스토리 뷰
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 컨테이너 가 생성이 완료되면 아래 주소로 접속해 확인합니다.
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000 (기본 ID:
admin/ PW:admin)
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 선택

Connection에 http://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이란 컴퓨터의 시스템, 애플리케이션 등에서 성능 정보를 수치화한 데이터이다.
'라이브러리&프레임워크 > Spring' 카테고리의 다른 글
| Spring 개발자를 위한 캐싱 전략: 로컬 캐시부터 Redis 분산 캐시까지 (0) | 2025.07.27 |
|---|---|
| Spring Cache 사용법 정리 (0) | 2025.07.27 |
| 동시성 문제와 해결 전략 (비관적 락 vs 낙관적 락) (0) | 2025.05.10 |
| AOP란? (0) | 2025.05.02 |
| CustomException 설계와 Spring 예외 처리 전략 (0) | 2025.04.25 |
