이 글에서 얻는 것
- APM(Application Performance Monitoring)이 무엇이고, 왜 필요한지 이해합니다.
- 핵심 메트릭(응답 시간, 처리량, 오류율)을 모니터링할 수 있습니다.
- Spring Boot Actuator로 헬스 체크와 메트릭을 노출합니다.
- 분산 추적의 기본 개념을 이해합니다.
0) APM은 “운영 중인 애플리케이션의 건강 상태"를 보여준다
APM이란?
APM (Application Performance Monitoring)
= 애플리케이션 성능을 실시간으로 모니터링
목적:
- 성능 병목 발견
- 장애 조기 감지
- 사용자 경험 최적화
- 리소스 사용량 추적
로깅 vs 모니터링
로깅:
- "무슨 일이 일어났는가?" (이벤트)
- 문제 원인 파악
- 예: "User alice logged in"
모니터링:
- "시스템이 얼마나 건강한가?" (지표)
- 문제 조기 감지
- 예: "평균 응답 시간: 200ms, CPU 사용률: 60%"
둘 다 필요!
1) APM 핵심 메트릭
1-1) Golden Signals (핵심 지표 4가지)
1. Latency (지연시간)
- 요청 처리 시간
- 예: 평균 응답 시간 200ms
2. Traffic (트래픽)
- 요청 수
- 예: 초당 100 요청 (100 RPS)
3. Errors (오류)
- 실패한 요청 비율
- 예: 오류율 0.5%
4. Saturation (포화도)
- 리소스 사용률
- 예: CPU 70%, 메모리 80%
1-2) 주요 메트릭 상세
응답 시간 (Response Time)
평균 응답 시간: 200ms
P50 (중앙값): 150ms
P95 (95 백분위수): 500ms ← 중요!
P99: 1000ms
P95가 높다 = 일부 사용자가 느린 경험
처리량 (Throughput)
RPS (Requests Per Second): 초당 요청 수
TPM (Transactions Per Minute): 분당 트랜잭션 수
예:
- 평균 RPS: 100
- 피크 RPS: 500 (트래픽 급증 시)
오류율 (Error Rate)
오류율 = (실패한 요청 / 전체 요청) × 100
예:
- 전체 요청: 10,000
- 실패: 50
- 오류율: 0.5%
목표: 오류율 < 0.1% (SLA에 따라 다름)
리소스 사용률
CPU 사용률: 70%
메모리 사용률: 80%
디스크 I/O: 60%
네트워크 대역폭: 50%
경고: > 80%
위험: > 90%
💬 댓글