로그와 메트릭을 알아보자 !!
1. 로그와 메트릭이란?
로그는 서버가 동작할 때 서버의 상태와 동작 정보를 시간 경과에 따라 기록된 결과.
로그는 시스템의 오류와 문제들을 쉽게 찾아낼 수 있도록 도와준다.
메트릭은 시스템의 성능과 상태에 대한 통계적인 정보를 의미.
메트릭을 잘 수집하면 시스템의 현재 상태를 손쉽게 파악할 수 있고, 사업 현황에 관한 유용한 정보를 얻을 수 있다.
메트릭은 DAU, Retension, CPU 사용량, 메모리 사용량 등이 있다.
2. 로그, 메트릭 수집 예시
스프링 부트 액추에이터를 사용해 메트릭을 생성하고 프로메테우스에 저장한 다음 그라파나로 시각화
수집한 지표 예시
- CPU, 메모리, JVM 힙 사용량
- 톰캣 스레드 풀과 데이터베이스 커넥션 풀 상태
- error 레벨 로그 증가량
로깅은 LogBack을 이용.
Loki에 7일동안 보관하도록 설정했으며 로그 추적을 위해 MDC를 사용
3. 위 예시의 수집 이유
CPU, 메모리, JVM 사용량 지표를 수집한 이유는 서비스가 현재 안정적으로 동작하고 있는지 파악하기 위함.
또한, 톰캣 스레드 풀과 커넥션 풀의 상태와 error 레벨 로그를 수집한 이유는 서버 프로그램 내부에 비정상적인 상황이 생기는 것을 신속히 대응하기 위함.
4. 광고
5. System.out.println을 사용
로그를 출력하는 경우 대기 시간이 발생.
그리고, 로그 또한 데이터이기 때문에 저장 공간을 요구.
따라서, 정말로 필요한 경우에만 로깅을 수행하는 것이 비용 효율적.
하지만, System.out.println은 로그 레벨 설정과 환경 별 필터링을 적용하기 까다롭다.
반면, 로깅 프레임워크는 로그 레벨 설정, 필터링 등 로그의 양 조절을 하기 위한 기능을 제공하기 때문에 이를 사용하는 것이 서비스 운영에 유리.
'개발 > ETC' 카테고리의 다른 글
TCP 3-way handshake 알아보기 (61) | 2024.12.29 |
---|---|
공유 락, 배타 락 차이 (77) | 2024.12.24 |
트랜잭션 격리수준 알아보기 (120) | 2024.12.09 |
데이터베이스 인덱스 알아보기 (82) | 2024.12.07 |
cannot inspect work tree in repository with unmerged files 에러 해결 (104) | 2024.10.25 |