1️⃣ 환경 구성
의존성 추가(Gradle)
dependencies {
implementation 'io.micrometer:micrometer-registry-prometheus'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
}
application.yml 설정
management:
endpoints:
web:
exposure:
include: "prometheus"
metrics:
export:
prometheus:
enabled: true
2️⃣ 커스텀 메트릭 코드 작성
Counter, Timer, Gauge 등을 Micrometer에서 제공
회원가입 수 카운터 예시
@Component
@RequiredArgsConstructor
public class CustomMetrics {
private final MeterRegistry meterRegistry;
private final Counter signupCounter;
public CustomMetrics(MeterRegistry meterRegistry) {
this.meterRegistry = meterRegistry;
this.signupCounter = Counter.builder("custom.user.signup.count")
.description("전체 회원가입 수")
.register(meterRegistry);
}
public void increaseSignupCount() {
signupCounter.increment();
}
}
서비스 로직에서 호출 :
customMetrics.increaseSignupCount();
3️⃣ Prometheus 설정 (prometheus.yml)
scrape_configs:
- job_name: 'spring-actuator'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['host.docker.internal:8080']
4️⃣ Grafana 대시보드 예시
- Dashboard > + New Panel
- Query: custom_user_signup_count
- 시계열 차트로 표현
5️⃣ 정리
| 구성요소 | 역할 |
| Micrometer | 메트릭 수집 |
| Prometheus | 메트릭 저장 및 스크래핑 |
| Grafana | 메트릭 시각화 |
| Spring Boot | Actuator 통해 노출 |
'SPRING' 카테고리의 다른 글
| [SPRING] Lettuce 분산 락 구현 (1) | 2025.05.27 |
|---|---|
| [SPRING] 동시성 제어 분산 락 (2) | 2025.05.26 |
| [SPRING] 메트릭 기반 모니터링 시스템(Prometheus, Grafana) (2) | 2025.05.19 |
| [SPRING] 조건 검색 개선 3탄 (분리 조회,Projection, 복합 인덱스) (3) | 2025.05.15 |
| [SPRING] @EventListener (3) | 2025.05.14 |