애플리케이션

에이전트에서 수집된 정보는 대시보드에서 즉시 확인할 수 있습니다.
이를 통해 즉각적인 장애 인지와 잠재적인 문제 요소를 빠르게 식별할 수 있습니다.

Application Monitoring - 대시보드 프로파일 탑스택

수집된 정보는 대시보드로 실시간 확인할 수 있습니다.
CPU, Memory를 제외한 일반적인 차트는 안정적인 데이터는 파란색 계열로 표현됩니다.
문제로 식별되는 요소들은 붉은색 계열로 표시되므로 현황을 쉽게 인지할 수 있습니다.

대시보드 최상단에서는 프로젝트와 사용자 계정에 대한 필수 메뉴를 배치했습니다.

메뉴명

왼쪽 끝에는 현재 화면의 메뉴명이 나타납니다.

테마

우측 상단의 다이아몬드 모양의 페인트 통 아이콘을 선택하면 현재 페이지 테마를 선택하실 수 있습니다. Default 값은 Light 모드입니다. 이외에 Dark 모드를 선택하거나 Custom 테마를 추가할 수 있습니다.

알람

종 모양 아이콘을 선택하면 최근 발생한 이벤트를 확인할 수 있습니다. 실시간 알림을 on/off 할 수 있습니다.

LiveChat

질문이 있으면 물음표 아이콘을 선택해주세요.

계정 정보 관리

사람 아이콘을 선택하면 계정 정보를 관리하거나 언어를 변경할 수 있습니다.
소유자인 경우 프로젝트를 유료로 전환할 수 있습니다.

핀 모양 버튼을 사용해 에이전트를 필터링할 수 있습니다.

agent select
Figure 1. 에이전트 선택

Widget

스피드미터

왼쪽에서 오른쪽으로 스피드미터를 지나가는 물방울 모양의 아이콘은 트랜잭션을 의미합니다. 액티브 트랜잭션의 상태를 속도(Normal, Slow, Very Slow)로 분류하여 우측 상단에 개수를 표시합니다.

에이전트 요약

등록된 에이전트를 요약하고 있습니다. 에이전트의 실행 상태와 수를 나타냅니다.

액티브 스테이터스

액티브 트랜잭션을 수행 구간별로 분류하여 이퀄라이저로 보여줍니다. 프로젝트 내의 모든 에이전트는 5초마다 액티브 트랜잭션 수를 수집함과 동시에 진행 상태를 수집합니다.

Screenshot 2020 12 15 Panel Site 1807   Application Monitoring
Figure 2. 액티브 스테이터스

액티브 스테이터스 상태는 5가지로 구분됩니다.

METHOD

아래 4가지 상태가 아닌 경우

SQL

Sql을 수행 중인 상태

HTTPC

Http 외부 호출 중인 상태

DBC

Db Pool에서 getConnection을 하고 있는 상태

SOCKET

Socket의 connect()를 호출하고 있는 상태

이퀄라이저 색깔의 의미는 중요도를 나타내고 있습니다.
DBC와 SOCKET은 한두 개가 지속적으로 나타난 것까지 문제로 인식되어야 합니다.
반면 SQL과 HTTPC는 개수가 상대적으로 많은 경우 분석이 필요하고 METHOD는 일반적인 상황이므로 파란색입니다.

액티브 트랜잭션

액티브 트랜잭션은 진행 중인 트랜잭션을 의미합니다. Arc Equalizer 차트로 표현됩니다. 에이전트 수만큼 아크가 분할됩니다.

5초마다 현재 서버에서 처리 중인 요청의 수를 표현해서 해당 요청이 각각 어느 정도의 시간 동안 처리 중인지 알 수 있습니다. 5초 간격의 시간에 감지된 요청들은 위험 여부를 파악할 수 있도록 다음과 같이 색으로 분류됩니다.

수행 시간에 따른 이퀄라이저 색 변화
  • 빨간색 (Very slow): 8초 이상

  • 주황색 (Slow): 3초 ~ 8초

  • 파란색 (Normal): 0초 ~ 3초

파란색이 많이 표현되는 상황은 문제가 되지 않습니다. 이중 일부가 보라색이나 빨간색으로 바뀌어 표현되지 않는지 추이를 지켜봐야 합니다.

장애 상황에는 액티브 트랜잭션 수가 증가하고 빨간색 비율이 높아집니다. 반면, 응답이 매우 빠른 시스템의 경우 처리되는 트랜잭션 수(TPS)는 높아도 액티브 트랜잭션 수는 낮을 수 있습니다.

act tx
Figure 3. 액티브 트랜잭션(아크 이퀄라이저)
현재 진행 중인 트랜잭션 수를 표시합니다.
- 좌측 상단에는 진행 중인 트랜잭션 수가 가장 많은 에이전트 이름이 표시됩니다.
- 우측 상단의 아이콘을 통해 뷰를 전환하거나 상세 보기 메뉴로 이동할 수 있습니다.
- 가운데 숫자는 선택된 에이전트의 액티브 트랜잭션 수 합계입니다.
- 액티브 트랜잭션 둘레에 두 개의 바는 처리량(TPS)에 따라 3단계 속도로 차트 주변을 회전합니다.

히트맵

히트맵 차트는 종료된 트랜잭션 응답시간을 분포도로 표현합니다.
가로축은 트랜잭션 종료 시간을 나타냅니다.
세로축은 수행 시간을 나타냅니다.
수행 시간이 긴 트랜잭션은 분포도 상단에 위치하게 됩니다.

히트맵 내 영역을 드래그하면 세부 트랜잭션 정보를 확인할 수 있습니다.

오류가 발생하지 않았고 수행 시간 500ms 이하 트랜잭션의 세부 정보는 url 당 5분에 1건만 수집됩니다.
TPS나 평균 응답시간 같은 통계정보에는 영향을 미치지 않습니다.
에이전트 설정을 통해 정책 조정 가능합니다.

히트맵 점 색상의 진하기는 밀도를 표현합니다.

  • 정상 TR : 하늘색 → 파란색 → 남색

  • 에러 TR : 노란색 → 주황색 → 빨간색

hitmap
Figure 4. 히트맵
히트맵 차트는 편의 기능들을 제공합니다.
- 상단의 숫자는 차트 내 트랜잭션 건 수/에러 건수를 의미합니다.
- 수행 시간을 나타내는 Y 축은 자동으로 조정할 수 있습니다.
- 에러 트랜잭션만 필터할 수 있습니다.
- 차트는 상하 5초 ~ 80초까지 확대/축소할 수 있습니다.

Apdex

Apdex(Application Performance Index)는 애플리케이션 성능지표입니다. 웹 애플리케이션의 고객 만족도를 측정합니다. 사용자 만족도에 대한 지표로 활용할 수 있으며, 0 ~ 1 사이의 값을 갖습니다.

(만족 횟수 + (허용 횟수 * 0.5)) / 전체 요청 수

만족 (Satisfied, S)

업무처리에 전혀 문제가 없음 ≤ 1.2초 (만족 S 기본값)

허용 (Tolerating, T)

사용자가 지연을 느끼나 업무처리는 가능함 ≤ 4.8초 (만족 S * 4)

불만 (Frustrated, F)

업무처리가 불가능함 > 4.8초 (허용 T 초과 및 오류)

TPS

TPS(Tansaction Per Second)는 초당 처리된 트랜잭션 건수를 의미하며 서비스 성능지표 중 기준이 됩니다.

와탭은 프로젝트 전체 TPS를 실시간으로 보여줍니다.

Screenshot 2020 12 15 W JAVA DEMO 5490   Application Monitoring
Figure 5. TPS 전체

개별 TPS를 실시간 모니터링해야 할 경우에는 차트 상단의 전환 버튼을 클릭합니다. 다만 프로젝트에 애플리케이션 수가 너무 많으면(수십 개 이상) 효과적이지 않습니다.

Screenshot 2020 12 15 W JAVA DEMO 5490   Application Monitoring1
Figure 6. TPS 개별

차트 상단의 상세 보기 버튼을 클릭하면 상세한 최근 TPS 현황을 조회할 수 있습니다.

tps
Figure 7. TPS 상세 보기

평균 응답시간

모니터링 대상 서버가 평균 응답시간이 얼마인지를 실시간 모니터링할 수 있습니다.

response time1
Figure 8. 응답시간 전체

개별 응답시간을 모니터링하고자 할때는 차트 상단의 전환 버튼을 클릭합니다. 다만 프로젝트에 애플리케이션 수가 너무 많으면(수십 개 이상) 효과적이지 않습니다.

response time
Figure 9. 응답시간 개별

차트 상단의 버튼을 클릭하면 서버당 데이터를 보여주는 차트를 확인할 수 있습니다. 해당 차트는 평균, 최대 응답시간, 이름을 기준으로 정렬하여 볼 수 있습니다.

10.52.14
Figure 10. 응답시간 상세 보기

시스템 CPU

시스템 CPU 사용량입니다. 실시간으로 CPU 사용량 변화 추이를 파악할 수 있습니다.

Screenshot 2020 12 15 W JAVA DEMO 5490   Application Monitoring2
Figure 11. 시스템 CPU

힙 메모리

각 서버당 사용 가능한 최대/현재 메모리를 보여줌으로써 위험 수치에 있는 서버를 알 수 있습니다. 시간에 따른 메모리 사용량 변화를 실시간으로 볼 수 있습니다.

Java와 Node.js는 힙 메모리 총량과 사용량을 보여줍니다.
PHP, Python과 .Net은 프로세스 메모리 사용량을 보여줍니다.

메모리 라인 차트는 보통 계속해서 물결치며 이는 애플리케이션 서버가 요청을 처리하기 위해 메모리를 사용할 때 증가합니다. GC (Garbage Collection)을 통해서 메모리를 정리할 경우에 감소합니다.

Screenshot 2020 12 15 W JAVA DEMO 5490   Application Monitoring3
Figure 12. 힙 메모리

사용자

일반적으로 접속 사용자라 함은 현재 네트워크로 접속하여 연결된 사용자를 의미합니다.
하지만 웹 시스템은 비연결 네트워크를 사용하기 때문에 다릅니다.
접속되어 있다는 개념보다는 최근 요청을 보낸 적이 있는 사용자가 측정 대상이 될 수 있습니다.

따라서, 최근이란 얼마의 시간을 의미하는지가 중요합니다. 와탭에서는 5분을 기준으로 하고 이를 실시간 사용자(Realtime User) 라고 부릅니다.

와탭의 실시간 사용자 수는 "최근 5분 동안 트랜잭션을 유발한 적이 있는 사용자의 수"를 의미합니다.
실시간(동시) 사용자는 같은 시간대에 시스템을 사용하고 있는 사용자를 의미합니다.
산정 방식 또는 측정 방식에 따라 다양합니다.
Screenshot 2020 12 15 W JAVA DEMO 5490   Application Monitoring4
Figure 13. 실시간 사용자
user
Figure 14. 실시간 사용자 상세 보기
사용자 수는 단순히 합산되는 것이 아니라 HyperLog[1]로 산출됩니다.

1. 매우 적은 메모리로 집합의 원소 개수를 추정하는 확률적 자료구조