이 글에서 얻는 것

  • 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%

👉 다음 편: APM 기본 (Part 2: Actuator, Prometheus 연동)