관측성(Observability) 3대 축

📌 핵심 개념

하나의 모니터링 도구로는 부족하다! 세 가지 관점이 모두 필요합니다.

🔍 3가지 축 비교

도구질문용도
MetricsPrometheus, CloudWatch”얼마나?”추세 파악, 알람
LogsELK, Loki, CloudWatch Logs”무슨 일이?”디버깅, 원인 분석
TracesJaeger, Zipkin, Tempo”어디서 느려?”병목 지점 찾기

📊 1. Metrics (메트릭)

특징

  • 숫자 데이터 (시계열)
  • 경량, 빠름
  • 대시보드와 알람에 적합

예시

# CPU 사용률
cpu_usage_percent 80
 
# API 응답 시간
api_response_time_seconds 0.234
 
# 에러 비율
error_rate_percent 2.5

언제 사용?

  • 시스템 건강도 확인
  • 이상 징후 감지
  • 용량 계획

📝 2. Logs (로그)

특징

  • 텍스트 데이터
  • 상세한 컨텍스트
  • 저장 공간 많이 필요

예시

2025-12-09 10:30:45 ERROR [OrderService]
Failed to process order #12345:
Connection timeout to payment gateway

언제 사용?

  • 에러 메시지 확인
  • 디버깅
  • 감사(Audit) 기록

🔗 3. Traces (분산 추적)

특징

  • 요청 흐름 추적
  • 서비스 간 의존성 시각화
  • 병목 지점 정확히 파악

예시

[Request: order-12345]
1. API Gateway (20ms)
2. → Order Service (150ms)
3.   → MySQL Query (120ms) ← 병목!
4.   → Redis Cache (10ms)
5. → Payment Service (50ms)

Total: 240ms

언제 사용?

  • 마이크로서비스 환경
  • 성능 최적화
  • 서비스 간 호출 추적

🚨 실무 시나리오: 장애 대응

상황: 주문 API가 느려짐

1단계: Metrics 확인

# Prometheus Query
rate(api_latency_seconds[5m])

발견: Order Service 응답 시간 급증 (0.2초 → 2초)

2단계: Logs 확인

grep "ERROR" order-service.log | tail -50

발견: Lock wait timeout exceeded 에러 다수

3단계: Traces 확인

Jaeger UI → order-12345 trace

발견: MySQL 쿼리에서 2초 소요 (lock 대기)

결론

Metrics로 “어디가” 문제인지 파악 Logs로 “무슨” 에러인지 확인 Traces로 “어느 부분이” 느린지 정확히 식별

🔧 도구 조합 예시

소규모 스타트업

Metrics: Prometheus (무료)
Logs: Loki (무료)
Traces: Jaeger (무료)
대시보드: Grafana (통합)

중대형 기업

Metrics: Prometheus + Datadog
Logs: ELK Stack
Traces: Jaeger
대시보드: Grafana + Datadog

클라우드 중심

Metrics: CloudWatch Metrics
Logs: CloudWatch Logs
Traces: AWS X-Ray
대시보드: CloudWatch Dashboards

⚠️ 흔한 실수

❌ Metrics만 보는 경우

"API 에러율이 높네?"
→ 왜 에러인지 모름 (로그 필요)

❌ Logs만 보는 경우

"에러 로그가 있네?"
→ 언제부터 시작됐는지 모름 (메트릭 필요)

❌ Traces만 보는 경우

"이 요청은 느리네?"
→ 전체적인 트렌드를 모름 (메트릭 필요)

💡 실무 팁

우선순위

Phase 1: Metrics (필수)
→ 시스템 생존 확인

Phase 2: Logs (중요)
→ 문제 원인 파악

Phase 3: Traces (고급)
→ 성능 최적화

비용 효율

Metrics: 저렴 (작은 데이터)
Logs: 중간 (샘플링 고려)
Traces: 비쌈 (선택적 수집)

🔗 연관 개념

📚 더 읽어보기