애플리케이션 동작 측정을 위한 지표 활용 방안
- 서비스 수준 목표(service level objective)(SLO)를 달성하기 위해
- 99백분위수(P99)임계값 백분위수를 활용하라
- 관측용이성과 오토스케일링을 활용하자
- 카운터, 게이지, 히스토그램 등 크게 세 가지 유형이 있다.
- 카운터
- 특정 이벤트가 발생한 횟수
- 게이지
- 특정 시점을 기준으로 측정하므로 값이 올라거나 내려갈 수 있다.
- 자동차의 속도계나 연료계라고 생각하면 된다
- 히스토그램
- 규모에 따라 이벤트를 특정 범위로 구분한다.
- 요청 처리에 걸린 시간이나
- 데이터 페이로드 크기 같은 지표를 측
- 관측용이성 시스템
- 데이터독
- 로직모니터
- 프로메테우스
- 오토스케일링
- 동적 리소스 할당을 지원하는 환경
표준 지표 라이브러리를 사용하자
- 지표 라이브러리 보다는
- 각자 회사에서 선호하는 지표 라이브러리를 선택하자
- 직렬화는 비용이 드는 CPU 집약적 작업이므로 직렬화 성능을 반드시 측정해야한다.
- 플라스크 같은 웹 애플리케이션 프레임워크는 다양한 지표 계산을 대신해준다
- 대부분은 웹서비스에 호출되는 모든 메소드의 HTTP 상태코드를 전부 기록하며 모든 HTTP 요청도 기록한다.
- 프레임워크 지표는 공짜로 수많은 지표를 얻을 수 있는 좋은 방법이다.
- 단지 프레임워크가 관측용이성 시스템으로 지표로르 출력하도록 설정만 해놓으면 된다.
- 이 때 지표 측정은 프레임워크 수준에서 실행되므로 코드도 깔끔하게 유지할 수 있다.
모든 것을 측정하자
측정은 비용이 적게 드는 작업이므로 가급적 많은 지표를 수집해야 한다.
- 리소스 풀
- 게이지를 이용해 측정
- 캐시
- 값을 읽은 경우와 캐시에 값이 존재하지 않은 경우도 측정
- 데이터 구조
- 게이지를 이용해 측정하자
- 데이터 구조의 크기가 비정상적으로 커진다는 것은 뭔가 이상한 일이 일어나고 있다는 신호
- CPU 집약적 작업
- 데이터 직렬화 작업은 상당히 큰 비용이 드는 작업이므로 특히 더 주의하자
- IO 집약적 작업
- 타이머를 이용해 이 작업이 얼마나 오래 걸리는지 측정해보자
- 데이터 크기
- 데이터 크기가 커지면 메모리 풋프핀트, IO속도, 디스크 사용량에 영향을 미친다.
- 예외와 에러
- 예외, 에러 응답 코드, 잘못된 입력은 모두 카운트하자.
- 원격 요청 및 응답
'[도서 리뷰]' 카테고리의 다른 글
| 개발자 온보딩 가이드 리뷰 - 2 (0) | 2024.05.27 |
|---|---|
| 개발자 온보딩 가이드 리뷰 -1 (0) | 2024.05.26 |