개발환경

성능 모니터링과 로깅

ZZJJing 2025. 5. 18. 18:26
반응형

성능 모니터링 도구

  • New Relic: 전체 스택 모니터링. 직관적 대시보드. 비용 높음
  • Datadog: 통합 모니터링. 커스텀 메트릭 유연함
  • Prometheus + Grafana: 오픈소스. 비용 효율적. 설정 복잡
  • Elastic APM: ELK 스택 연동 용이

모니터링 핵심 메트릭

  • 응답 시간: p95, p99 값 중요
  • 처리량: RPS(Requests Per Second)
  • 오류율: 4xx, 5xx 에러 비율
  • CPU/메모리 사용률: 트렌드 변화 주시
  • 디스크 I/O: DB 서버에서 중요
  • 네트워크 트래픽: 내/외부 패턴

★ 메모리 누수는 CPU 정상이어도 OOM 발생 가능. 여러 메트릭 종합 분석 필요

 


알림 전략

  • 중요도 기반 분류: P1(즉시), P2(당일), P3(주간)
  • 알림 그룹화: 연관 이슈는 하나로 묶기
  • 동적 임계값: 이상 탐지(anomaly detection) 기반
  • 다양한 알림 채널: Slack, 이메일, PagerDuty 등 상황별 구분

 알림은 적을수록 효과적. 알림 피로(Alert Fatigue) 주의

 


로깅 전략

  • 로그 레벨:
    • ERROR: 실제 에러만
    • WARN: 잠재적 문제
    • INFO: 중요 비즈니스 이벤트
    • DEBUG: 문제 해결용 (프로덕션 최소화)
  • 구조화된 로깅:
{ 
	"timestamp": "2025-05-18T10:15:30Z", 
    "level": "ERROR", 
    "service": "payment-processor", 
    "traceId": "abc-123-def-456", 
    "message": "Payment processing failed", 
    "context": { 
    	"userId": "user-789", 
        "orderId": "order-456", 
        "errorCode": "INSUFFICIENT_FUNDS" 
    } 
}
  • 상관관계 ID: 분산 시스템 요청 추적 필수
  • 로그 보존 정책: 비용/규정 준수 고려
  • 샘플링: 고트래픽 환경에서 필요

★ 중요 지점에는 충분한 로그 남기기. 로그 없는 디버깅 지양

 


로그 저장 및 분석

  • ELK Stack:
    • 장점: 강력한 검색, 시각화
    • 단점: 리소스 사용량 높음
  • Loki + Grafana:
    • 장점: 경량, Prometheus 통합
    • 단점: 복잡한 쿼리 제한적
  • Cloudwatch Logs: AWS 환경 적합
  • Google Cloud Logging: GCP 통합 분석

★로그+메트릭 연계 분석이 문제 해결 속도 높임

 


성능 최적화 접근법

  1. 측정: 정확한 메트릭으로 병목 식별
  2. 가설: 데이터 기반 원인 추정
  3. 검증: 프로파일링 도구로 확인
  4. 개선: 작은 변경부터 시작
  5. 효과 측정: A/B 비교

★DB 쿼리 최적화보다 캐싱이 효과적인 경우 많음. 여러 대안 검토

 

728x90
반응형