-
[백엔드]로그와 메트릭은 모야?매일메일 2025. 7. 2. 11:01728x90
✅ 로그(log)란?
- 애플리케이션이 동작하면서 남기는 이벤트 기록(ex: 에러 발생, 요청 처리 흐름 등)
🔧 적용 포인트 (현재 과제로 하고 있는 프로젝트 예시)
위치 로그 메시지 예시
파일 업로드 시작 "파일 업로드 시작: filename = {}", file.getOriginalFilename() 유효성 검사 실패 "유효성 검사 실패: line {}, 내용: {}", i + 1, line DB insert 성공 "DB 저장 성공: userId = {}", user.getId() DB 중복 예외 "중복 예외 발생: userId = {}", user.getId() 사용방법
import lombok.extern.slf4j.Slf4j; @Slf4j @Service public class MemberService { public void doSomething() { log.info("정상 처리"); log.warn("주의 필요"); log.error("에러 발생"); } }
✅ 메트릭(metric)이란?
- 서비스의 상태를 수치화해서 모니터링하는 데이터(ex: 성공 건수, 에러율, 처리 시간 등)
🧩 적용 예시
메트릭 이름 설명upload.success.count 업로드 성공 건수 upload.failure.count 업로드 실패 건수 upload.duration 전체 업로드 처리 시간(ms) ⛏️ 수집 방법
- 보통 spring boot에서는 Micrometer + Prometheus + Grafana 조합이 흔하게 사용된다고 함
1. 의존성 추가
implementation 'io.micrometer:micrometer-registry-prometheus'
2. 코드에 적용(예시)
@Autowired MeterRegistry meterRegistry; public void processFile(...) { Timer timer = Timer.start(meterRegistry); int success = 0; ... // 메트릭 기록 meterRegistry.counter("upload.success.count").increment(success); meterRegistry.counter("upload.failure.count").increment(errors.size()); timer.stop(meterRegistry.timer("upload.duration")); }
이렇게 하면 로그는 콘솔에, 메트릭은 /autuator/prometheus로 노출 → Prometheus/Grafana 대시보드에서 시각화 가능
아주 간단한 예시였기에, 추후에 spring boot에서 시스템 모니터링 관련 블로깅을 할 예정.
'매일메일' 카테고리의 다른 글
JPA에서 ID 생성 전략에 대해 설명하세요. (0) 2025.07.09 [백엔드] 얕은 복사와 깊은 복사 (0) 2025.07.01 [백엔드]일급 컬렉션이 모지?? (0) 2025.06.30 [프론트엔드]인터넷 창에 www.google.com를 입력하면 무슨 일이 일어나는지?? (0) 2025.06.30 [백엔드] 자바에서 객체를 복사하는 방법에는 어떤 종류가 있는지?? (0) 2025.04.29