트랜잭션 분석하기
히트맵
홈 화면 > 프로젝트 선택 > 분석 > 히트맵
와탭 모니터링 서비스 초기 화면에서 프로젝트를 선택한 다음 분석 > 히트맵 메뉴를 선택하세요.
히트맵은 대시보드 > 애플리케이션 대시보드의 히트맵 위젯을 통해 접근할 수도 있습니다.
상세 분석
에이전트 영역
현재 프로젝트와 연결된 에이전트를 선택해 필터링할 수 있습니다. 버튼을 선택하면 영역에서 히트맵 트랜잭션 차트를 확인할 수 있습니다.
히트맵 트랜잭션 차트
지연 문제가 있는 트랜잭션이 포함된 경우 히트맵 트랜잭션 차트에서 주황색이나 붉은색으로 표시됩니다. 정상 트랜잭션만 포함된 경우 파란색으로 표시됩니다.
선택 영역
실시간 히트맵 차트를 드래그하면 선택 영역의 애플리케이션 목록과 트랜잭션 정보를 확인할 수 있는 TX 트레이스 목록이 나타납니다.
애플리케이션 목록
차트에서 선택된 영역에 포함되는 트랜잭션 수와 에러 수를 확인할 수 있습니다. 목록 중에서 원하는 애플리케이션을 선택하면 해당 애플리케이션의 TX 트레이스 목록에 세부 정보가 나타납니다.
TX 트레이스 목록
TX 트레이스 목록은 세부 정보를 가지고 있습니다. 목록에서 원하는 트랜잭션을 선택하면 트랜잭션 정보 창이 나타납니다. 트랜잭션 정보 창에서 해당 트랜잭션의 트레이스 상세 분석을 확인할 수 있습니다. 자세한 내용은 다음 문서를 참조하세요.
히트맵 패턴의 이해
히트맵은 트랜잭션의 종료시간은 X축, 응답시간은 Y축으로 한 분포 차트입니다. 정상적인 웹 애플리케이션이라면 수 초 이하 구간에 집중된 분포를 보입니다.
히트맵 라인 분석하기
-
세로줄(LOCK 현상) 패턴
트랜잭션 처리 중 일시적인 락(Not only DB Lock)이 발생하면 이로 인해 처리를 대기합니다. 락이 해소되면 처리 대기 중 트랜잭션들은 비슷한 시간대에 함께 종료됩니다. 그러면 다음과 같이 세로로 줄이 만들어집니다.
세로줄 패턴으로 락을 감지하는 것은 매우 강력한 개념입니다. 특히 마이크로 서비스 아키텍처에서는 백엔드 시스템에서 발생하는 LOCK도 동일하게 감지될 수 있습니다.
Front 애플리케이션의 응답 패턴 세로줄은 Back-End 시스템이 사용하는 DB에서 락이 발생한 경우에도 감지됩니다.
-
가로줄(타임아웃) 패턴
10초 타임아웃 조건에서 해당 자원이 부족하면 트랜잭션들은 10초 대기 후 타임아웃 에러가 발생합니다. 이때 히트맵 10초 부근에 다음과 같이 가로줄이 생깁니다.
타임아웃 이후 재시도하는 로직이 있다면 그림처럼 가로라인이 10초 단위로 반복됩니다. 다음은 실제 장애 상황의 히트맵입니다.
(1) 구간에서 응답시간이 급증했고 (2) 구간의 빨간 라인은 전형적인 가로 라인 패턴입니다. (1) 구간 부하 발생으로 ConnectionPool이 소진되고 (2) 구간은 ConnectionPool 부족으로 2 차 타임아웃 장애가 발생한 상황입니다.
패턴 분석 활용
트랜잭션 응답분포에 줄이 보인다는 것은 병목이 있다는 것입니다. 일시적인 락킹이면 세로줄이 그 병목이 타임아웃으로 빠지면 가로 줄이 만들어집니다.
문제를 분석할 때 라인에 포함된 트랜잭션만을 선택적으로 분석해서 문제를 빠르게 찾아낼 수 있습니다.
머신러닝 기반 응답 패턴 분석
머신러닝 기술을 통해 히트맵 패턴을 분석 후 비정상 여부를 자동 감지해 경고를 발행하는 기능입니다.
비정상 패턴 예시
월 수백 TB의 성능 데이터로부터 비정상 패턴을 학습하고 학습된 비정상 패턴과 유사한 패턴이 발생하는 경우 이에 대한 알람을 발행합니다.
-
세로줄 패턴
-
가로줄 패턴
-
복합 패턴
-
히트맵 알람
히트맵 트랜잭션 차트를 분석하는 방법에 대한 자세한 설명은 다음 문서를 참조하세요.