피드로 돌아가기
컬리 기술블로그Backend
원문 읽기
딜리버리 프로덕트 개발팀의 개발문화 - 로그 & 알람편
컬리 딜리버리팀이 로그 레벨 기준 정의와 임계값 기반 알람으로 10분당 수백 건의 가짜 에러를 4건의 실제 에러로 정제
AI 요약
Context
복잡도 증가로 인해 로그 레벨에 대한 명확한 규칙 없이 무분별한 에러 로그가 쌓였다. 이로 인해 알람이 과도하게 발생하면서 개발자들이 경계심을 잃고 실제 장애를 놓치는 위험이 발생했다. 10분 기준 수백 건의 에러 로그 중 대부분이 실제 문제가 아닌 가짜 에러였다.
Technical Solution
- ERROR 레벨을 "즉각 대응해야 하는 것"으로 정의하고 에러 로그 발생 시마다 즉시 알람 트리거
- WARN 레벨을 "한두 번 발생했을 때는 무해하지만 빈도 증가 시 문제 가능성"으로 정의
- 경고 로그에 대해 특정 기간 내 임계치 초과 시에만 알람을 발동하는 조건부 알람 설정
- 공통 범위 알람을 5분 내 100회 기준으로 설정하고, 도메인별 특성에 따라 별도의 임계값 구성
- 의도된 예외(사용자 잘못된 입력 등)나 외부 시스템의 일시적 실패(타임아웃)는 경고 로그로 변경하여 빈도 기반 모니터링으로 전환
- MSK 정기 업데이트로 발생하는 알려진 경고 패턴은 알람 예외 처리
Impact
최근 3일간 시스템 에러 로그 10건 중 실제 에러는 4건, 경고 로그 355건으로 정제되었다.
Key Takeaway
로그 레벨 기준을 명확히 하고 임계값 기반 알람을 도입하면 가짜 경보를 줄여 개발자의 경계심을 유지할 수 있으며, 운영 중 자주 발생하는 패턴을 분석하면서 점진적으로 임계값을 조정해야 한다.
실천 포인트
마이크로서비스 환경에서 여러 외부 시스템과 연동하는 백엔드 서비스를 운영할 때, ERROR와 WARN 레벨을 명확히 구분하고 WARN에 대해 "기간당 임계치 초과" 기반 알람을 설정하면 가짜 에러 알람으로 인한 알람 피로도를 줄일 수 있고, 각 도메인의 트래픽 패턴과 외부 시스템 응답 특성을 반영해 5분, 10분 등 모니터링 주기를 점진적으로 조정하면서 임계값을 찾아가야 한다.