View

히트맵

상세 분석

실시간 히트맵을 드래그하거나 [→]를 클릭하면 아래와 같은 상세 분석 화면이 열립니다.

차트에서 에러 트랜잭션이 포함된 점은 노란색이나 붉은색으로 나타납니다. 정상 트랜잭션만 포함된 경우에는 파란색으로 나타납니다.

Screenshot 2020 12 15 W JAVA DEMO 5490   Application Monitoring11
Figure 1. 히트맵 상세 분석

분포도 화면에서 선택된 영역이 표시되고 그 영역에 포함되는 트랜잭션 수와 에러 수가 오른쪽 화면에 나타납니다. 리스트 중에서 애플리케이션을 선택하면 그 애플리케이션의 트랜잭션 목록이 하단에 나타납니다. 트랜잭션 하나를 클릭하면 프로파일 상세 내용을 분석할 수 있습니다.

Transaction List는 세부 정보를 가지고 있습니다. List에서 원하는 Transaction을 선택하게 되면 해당 트랜잭션의 프로파일을 보여줍니다.

히트맵 패턴의 이해

히트맵은 트랜잭션의 종료시간은 X축, 응답시간은 Y축으로 한 분포 차트입니다.

정상적인 웹 애플리케이션이라면 수 초 이하 구간에 집중된 분포를 보입니다.

h0
Figure 2. 일반적인 패턴
[와탭 5분 세미나] Hitmap(히트맵) 가로 세로 라인 분석하기

세로줄(LOCK 현상) 패턴

트랜잭션 처리 중 일시적인 락(Not only DB Lock)이 발생하면 이로 인해 처리를 대기합니다. 락이 해소되면 처리 대기 중 트랜잭션들은 비슷한 시간대에 함께 종료됩니다.

그러면 세로로 줄이 만들어집니다.

h3
Figure 3. 세로줄 패턴

세로줄 패턴으로 락을 감지하는 것은 매우 강력한 개념입니다. 특히 마이크로 서비스 아키텍처에서는 백엔드 시스템에서 발생하는 LOCK도 동일하게 감지될 수 있습니다.

h8
Figure 4. Front → API → DB

Front 애플리케이션의 응답 패턴 세로줄은 Back-End 시스템이 사용하는 DB에서 락이 발생한 경우라도 감지됩니다.

가로줄(타임아웃) 패턴

10초 타임아웃 조건에서 해당 자원이 부족하면 트랜잭션들은 10초 대기 후 타임아웃 에러가 발생할 것입니다. 이때 히트맵 10초 부근에 가로줄이 생깁니다.

h2
Figure 5. 가로줄 패턴

타임아웃 이후 재시도하는 로직이 있다면 그림처럼 가로라인이 10초 단위로 반복됩니다.

장애 분석 사례

실제 장애 상황의 히트맵입니다.

h7
Figure 6. 장애 사례

(1) 구간에서 응답시간이 급증했고 (2) 구간의 빨간 라인은 전형적인 가로라인 패턴입니다.
(1) 구간 부하 발생으로 ConnectionPool이 소진되고 (2) 구간은 ConnectionPool 부족으로 2차 타임아웃 장애가 발생한 상황입니다.

패턴 분석 활용

트랜잭션 응답분포에 줄이 보인다는 것은 병목이 있다는 것입니다. 일시적인 락킹이면 세로줄이 그 병목이 타임아웃으로 빠지면 가로 줄이 만들어집니다.

h4
Figure 7. 장애 발생 사례

문제를 분석할 때 라인에 포함된 트랜잭션만을 선택적으로 분석해서 문제를 빠르게 찾아낼 수 있습니다.

머신러닝 기반 응답 패턴 분석

머신러닝 기술을 통해 히트맵 패턴을 분석 후 비정상 여부를 자동 감지해 경고를 발행하는 기능입니다.

ml pattern

비정상 패턴

월 수백 TB의 성능 데이터로부터 비정상 패턴을 학습하고 학습된 비정상 패턴과 유사한 패턴이 발생하는 경우 이에 대한 알람을 발행합니다.

h3
Figure 8. 세로줄 패턴
h2
Figure 9. 가로줄 패턴
h7
Figure 10. 복합 패턴
ai alert
Figure 11. 히트맵 알람