- 모니터링의 3단계(순서대로 설계)
- 대시보드
- 애플리케이션 추적 → 핀포인트
- 로그
- 대시보드
- 전체를 한눈에 볼 수 있는 가장 높은 시점의 뷰
- 제품
- 마이크로미터
- 프로메테우스
- 그라파나 등
- 대상
- 시스템 메트릭(CPU, 메모리)
- 애플리케이션 메트릭(톰캣 쓰레드 풀, DB 커넥션 풀, 애플리케이션 호출 수)
- 비즈니스 메트릭(주문수, 취소수)
- 애플리케이션 추적
- 주로 각각의 http 요청을 하나하나 추적, 일부는 마이크로서비스 환경에서 분산 추적
- 제품
- 핀포인트(오픈소스) → https://github.com/pinpoint-apm/pinpoint
- 스카우트(오픈소스)
- 와탭(상용)
- 제니퍼(상용)
- 로그
- 가장 세세한 추적, 원하는데로 커스텀 가능
- 같은 http 요청을 묶어서 확인할 수 있는 방법이 중요, MDC? 적용
- 파일로 직접 로그를 남기는 경우
- 일반/에러 로그 파일을 구분
- 에러 로그만 확인해서 문제를 바로 정리할 수 있음
- 클라우드에 로그를 남기는 경우
- 검색이 잘 되도록 구분
- 로그마다 사용자를 구분하는 것이 좋음
- UUID를 하나의 트랜잭션에 부여
- 해당 트랜잭션 전체에서 해당 UUID를 남겨서 흐름을 볼 수 있게 하는 것도 좋음
- 모니터링 정리
- 각각 용도가 다름
- 관찰할 때 넓은 영역 → 좁은 영역 순서로 진행
- 핀포인트 적용 고려
- 알 람
- 모니터링 툴에서 일정 이상 수치 넘어갈 떄 슬랙, 문자 연동!
- 알람은 2가지 종류로 구분
- 경고: 하루 1번 정도는 사람이 직접 확인해도 되는 수준(사람이 들어가서 확인)
- 심각: 즉시 확인해야 함, 슬랙 알림(앱 알림), 문자, 전화 등
- 예시
- 디스크 사용량 70% → 경고
- 디스크 사용량 80% → 심각