반응형
매일메일에서 온 두 번째 메일 포스팅이다.
로그와 메트릭을 설명해주세요.
로그는 말 그대로 서버의 상태나 동작 정보를 시간에 따라 기록한 것이고, 메트릭은 상태 지표에 대한 기준이라고 알고 있다.
흠 정확하게 얘기하기가 힘든거 보니 완벽하게 정리할 필요가 있을 것 같다.
로그
로그는 서버가 동작할 때 서버의 상태와 동작 정보를 시간 경과에 따라 기록된 결과.
시스템의 오류와 문제들을 쉽게 찾아낼 수 있도록 도와줌.
메트릭
- 시스템의 성능과 상태에 대한 통계적인 정보
- 시스템의 현재 상태를 손쉽게 파악할 수 있고, 사업 현황에 관한 유용한 정보를 얻을 수 있다.
- 예시
- DAU
- REtension
- CPU Utilization
- Memory Utilization
로그와 메트릭을 수집해본 적이 있는가?
위 질문에 로그를 보기는 했지, 수집해본 적은 없었던 것 같다.
Spring Boot Actuator를 사용해 메트릭을 생성하고 프로메테우스에 저장한 다음 그라파나로 시각화하는 방법을 통해 로그를 손쉽게 볼 수 있다.
- CPU, Memory JVM 힙 사용량
- 서비스가 현재 안정적으로 동작하고 있는지 파악 가능
- 톰캣 스레드 풀, 데이터베이스 커넥션 풀 상태
- error 레벨 로그 증가량 등
- 프로그램 내부에 비정상적 상황이 생기는 것을 신속히 대응하기 위함.
로깅 방식
- Logback 사용
- Loki에 7일동안 보관하게 설정
- MDC 사용 (로그 추적)
SYstem.out.println을 사용하면 아노디는 이유
로그를 출력하는 경우 대기 시간이 발생한다. 그리고, 로그 또한 데이터이기 때문에 저장 공간을 요구한다.
따라서, 정말로 필요한 경우에만 로깅을 수행하는 것이 비용 효율적이다.
하지만, System.out.println은 로그 레벨 설정과 환경 별 필터링을 적용하기 까다롭다.
반면, 로깅 프레임워크는 로그 레벨 설정, 필터링 등 로그의 양 조절을 하기 위한 기능을 제공하기 때문에 이를 사용하는 것이 서비스 운영에 유리하다고 한다!
반응형
'Back-end' 카테고리의 다른 글
[Back-End] DBMS에서 동시성을 제어하는 방법 (0) | 2025.01.08 |
---|---|
[Back-End] 웹사이트에 처음 접근했을 때 발생하는 일련의 과정 (1) | 2025.01.07 |
[Back-End] 스레드, 프로세스, 코어의 수는 많을수록 좋을까요? (2) | 2025.01.02 |
[Back-End] Shared Lock과 Exclusive Lock 이란? (0) | 2024.12.31 |
[Back-End] Sync와 Async 그리고 Blocking와 Non-Blocking? (2) | 2024.12.30 |