1. 작업 목적

대기열 서비스의 운영 관측 가능성을 확보하기 위해 Prometheus와 Grafana 기반 모니터링 환경을 구성했다.

기존에는 Spring Boot Actuator에서 노출되는 메트릭을 Prometheus에서 수집하고 PromQL로 직접 조회하는 수준이었다.

이번 작업에서는 Grafana를 추가하여 Prometheus에 수집된 메트릭을 대시보드 형태로 시각화하고, 부하 테스트 중 애플리케이션의 상태 변화를 실시간으로 확인할 수 있도록 구성했다.

이번 테스트의 목적은 단순히 모니터링 도구를 실행하는 것이 아니라, 실제 대기열 진입 API에 요청을 발생시켰을 때 다음 운영 지표가 정상적으로 수집되고 시각화되는지 검증하는 것이다.

지표 목적
HTTP 요청 처리율 초당 요청 처리량 확인
p95 응답 시간 상위 지연 구간 응답 시간 확인
JVM Heap 메모리 사용량 부하 발생 중 메모리 사용 추이 확인
HTTP 5xx 에러율 서버 오류 발생 여부 확인
API별 요청 수 테스트 대상 API 요청 증가 여부 확인

2. 모니터링 구성

이번 모니터링 환경은 다음 흐름으로 구성했다.

Spring Boot Actuator
        ↓
Prometheus
        ↓
Grafana

각 구성 요소의 역할은 다음과 같다.

구성 요소 역할
Spring Boot Actuator 애플리케이션의 HTTP, JVM, 시스템 메트릭 노출
Micrometer Prometheus Registry Actuator 메트릭을 Prometheus 형식으로 변환
Prometheus /actuator/prometheus 엔드포인트를 scrape하여 메트릭 수집
Grafana Prometheus에 저장된 메트릭을 대시보드로 시각화
k6 대기열 진입 API에 부하를 발생시키는 테스트 도구

Prometheus는 메트릭 수집과 저장을 담당한다.

Grafana는 Prometheus에 저장된 시계열 데이터를 조회하여 운영자가 보기 쉬운 형태로 시각화하는 역할을 담당한다.


3. 측정 환경

항목 내용
애플리케이션 queue-api
Java 버전 Java 17
메트릭 노출 Spring Boot Actuator
메트릭 수집 Prometheus
시각화 도구 Grafana
부하 테스트 도구 k6
테스트 대상 API POST /api/v1/queues/enter
애플리케이션 포트 8081
Prometheus 포트 9090
Grafana 포트 3000

4. 메트릭 노출 확인

queue-api 실행 후 Spring Boot Actuator의 Prometheus 엔드포인트에 접근하여 메트릭이 정상적으로 노출되는지 확인했다.