Application 모니터링
이제 모든 관련 문서를 확인했습니다. 참고 문서 기반으로 종합적인 답변을 드리겠습니다.
exemONE Application 모니터링 - Transaction 기능 상세 설명
exemONE의 Transaction 모니터링은 WAS(Web Application Server)에서 처리되는 모든 트랜잭션의 실시간 성능 데이터를 수집·분석하는 기능입니다. 실시간 모니터링 화면과 성능 분석(Performance Analysis) 화면 두 가지 큰 영역으로 구성됩니다.
1. Transaction 실시간 모니터링 화면
메뉴 경로: Application > Application > Transaction
전체 WAS 관점의 기본 모니터링 화면으로, 실시간 데이터만 조회 가능합니다.
| 영역 | 설명 |
|---|---|
| Global Time | 모니터링 재생 여부를 선택합니다. 실시간 데이터만 조회 가능합니다. |
| Filters | WAS Group 하위의 필터 항목을 선택합니다. 검색 기능 지원(대소문자 구분 없음), OR 조건으로 데이터를 표시합니다. |
| Transaction View Trend | 트랜잭션 지표별 데이터를 보여줍니다. |
| Transaction View Summary | 트랜잭션 집계별 순위를 보여줍니다. |
| Transaction Trend Chart | 실시간 수집된 트랜잭션 차트를 보여줍니다. |
참고: https://app.clickup.com/25540965/v/dc/rbeb5-416338/rbeb5-2690678
1-1) Transaction View Trend
트랜잭션 지표별 데이터를 보여주는 화면입니다.
| 지표 | 설명 |
|---|---|
| Apdex | 전체 트랜잭션 수 중 Excellent 수와 Warning 건 수에 대한 백분위 비율 |
| TPS | 실시간 WAS의 초당 트랜잭션 수. 마우스 오버 시 특정 시간대에 발생한 TPS 확인 가능 |
| Transaction Error Count | 실시간 오류가 발생한 트랜잭션 수 |
1-2) Transaction View Summary
트랜잭션 집계별 순위를 보여주는 화면입니다.
| 항목 | 설명 |
|---|---|
| Top Transaction | 최근 10분 동안의 트랜잭션 평균 수행시간 기준 Top 5 |
| Top SQL | 최근 10분 동안의 SQL 평균 수행시간 기준 Top 5 |
| Top Remote | 최근 10분 동안의 EtoE 평균 수행시간 기준 Top 5 |
1-3) Transaction Trend Chart
실시간 수집된 트랜잭션 차트를 보여주는 화면입니다.
- Search: 수집된 트랜잭션의 수행 시간을 필터링하여 검색 가능
- Chart: 수집된 트랜잭션의 전체, 정상, 비정상 수의 집계 값 확인 가능
2. Transaction Detail Slide (트랜잭션 상세 슬라이드)
Transaction Trend Chart에서 특정 영역을 드래그하면 해당 영역의 트랜잭션 상세 정보를 확인할 수 있습니다. 7개 탭으로 구성되어 있습니다.
2-1) Information 탭
선택한 트랜잭션의 기본 정보를 확인합니다.
| 항목 | 설명 |
|---|---|
| Transaction Name | 트랜잭션명 (연계 화면 URL 설정 가능) |
| WAS Name | 트랜잭션이 수행된 WAS 이름 |
| Pod Name | Pod 환경일 경우 해당 Pod Name 출력 |
| Elapsed Time (sec) | 트랜잭션 수행 시간 |
| SQL Exec Count | SQL 수행 횟수 |
| SQL Elapsed Time (sec) | SQL 수행 시간 |
| SQL Fetched Rows | SQL Fetch Row 수 |
| SQL Fetched Time (sec) | SQL Fetch 소요 시간 |
| Remote Exec Count | Remote Call 수 |
| Remote Elapsed Time (sec) | Remote Call 소요 시간 |
2-2) Metric 탭
선택한 트랜잭션의 지표별 데이터를 확인합니다.
| 지표 | 설명 |
|---|---|
| Transaction Exec Count | 트랜잭션 수행 건 수 |
| Transaction Elapse Time | 트랜잭션 수행 시간 |
| SQL Exec Count | SQL 수행 건 수 |
| SQL Elapse Time | SQL 수행 시간 |
| Exception Count | 예외 발생 건 수 |
2-3) Call Tree 탭
선택한 트랜잭션에서 호출된 클래스 및 메소드 정보를 확인합니다.
- Search Filter: Call Tree 목록에서 검색 (대소문자 구분 없음)
- Grid Toggle: Detail 또는 Summary 형식으로 출력 가능
- Grid 컬럼: Class, Method, Exception Count, Execute Count, Method SEQ, Elapsed Time (sec), Elapsed Time Ratio (%), Method Type
Call Tree 타임바 기능: Setting > Application > Edit WAS Group > Config에서 USE_METHOD_SEQ = true로 설정하면 Call Tree 리스트를 타임라인으로 시각화할 수 있습니다. 타임바에서 항목 클릭 시 하단 Call Tree list에 해당 항목이 하이라이트됩니다. Method > SQL > Remote Call 순으로 표현됩니다.
참고 (Call Tree 타임바): https://app.clickup.com/25540965/v/dc/rbeb5-403498/rbeb5-2690678
2-4) SQL Text 탭
선택한 트랜잭션에서 수행된 SQL 정보를 확인합니다.
| 컬럼 | 설명 |
|---|---|
| Time | SQL 발생 시간 |
| SID | SID |
| SQL Exec Count | SQL 수행 건 수 |
| SQL Text | SQL Text (클릭 시 Full Text 확인 가능) |
| Total SQL Elapsed Time (sec) | SQL 총 수행 시간 |
| Max SQL Elapsed Time (sec) | SQL 최대 수행 시간 |
| Avg SQL Elapsed Time (sec) | SQL 평균 수행 시간 |
| Total SQL Fetch Count | SQL Fetch 건 수 |
| Total SQL Fetch Time (sec) | SQL Fetch 총 시간 |
| Avg SQL Fetch Time (sec) | SQL Fetch 평균 시간 |
2-5) Exception 탭
선택한 트랜잭션에서 발생된 예외 정보를 확인합니다. 아코디언 버튼을 통해 예외 내용을 숨김/펼침이 가능하며, 예외 내용 복사(Copy) 기능을 제공합니다.
2-6) Active History 탭
선택한 트랜잭션에서 호출된 메소드 중 액티브에 해당하는 메소드 정보를 확인합니다.
| 컬럼 | 설명 |
|---|---|
| Time | 액티브 트랜잭션 시작 시간 |
| Stack Trace | Stack Trace |
| Current Method | 액티브 발생 메소드 |
| Method Type | 메소드 타입 |
| Client IP | Client IP |
| Login Name | 로그인명 |
| Start Time | 메소드 시작 시간 |
| Transaction Time (sec) | 트랜잭션 소요 시간 |
3. WAS Detail Slide의 Transaction 탭
메뉴 경로: Application > Application > WAS > WAS Detail Slide > Transaction 탭
WAS 디테일 슬라이드에서 개별 WAS의 트랜잭션 목록을 확인합니다. Default 최근 10분 데이터를 보여줍니다.
| 컬럼 | 설명 |
|---|---|
| Txn Name | 트랜잭션 이름 |
| Start Time | 트랜잭션 시작 시간 |
| Elapsed Time (sec) | 트랜잭션 경과 시간 |
| SQL Exec Count | SQL 실행 횟수 |
| SQL Elapse Time (sec) | SQL 처리 시간 |
| SQL Fetch Count | SQL 쿼리로부터 데이터를 가져온 횟수 |
| SQL Fetch Count (sec) | SQL 쿼리로부터 데이터를 가져오는 데 걸린 시간 |
| Remote Exec Count | 원격 위치에서 실행된 쿼리의 횟수 |
| Remote Elapsed Time (sec) | 원격 위치에서 실행된 쿼리의 소요 시간 |
| Exception | 예외 여부 |
4. Performance Analysis - Transaction Trend (트랜잭션 트렌드 분석)
메뉴 경로: Performance Analysis > Application > Transaction Trend
트랜잭션에 대한 응답 시간과 각 트랜잭션의 요약 내용을 확인할 수 있는 분석 화면입니다.
4-1) Search Panel (검색 패널)
| 항목 | 설명 |
|---|---|
| WAS | WAS 선택 |
| Time | 기간 설정 (최대 1일, 최소 1분) |
| Elapsed time (sec) | 트랜잭션 경과 시간 조건 입력 |
| Filters | Exception Only, Call Tree Sampling Only, Transaction Name, Client IP, Login Name, Exception Type, TID, SQL Elapsed Time (sec), SQL Executions, Fetch Count, Open Conn |
4-2) Response Time Chart (응답 시간 차트)
트랜잭션 수행시간의 분포도를 제공합니다. 특정 영역을 드래그하면 해당 영역이 하이라이팅 처리되고, 트랜잭션 서머리 및 목록에 정보가 표시됩니다.
4-3) Transmission Summary (트랜잭션 서머리)
응답 시간 차트에 대한 트랜잭션 서머리입니다. 우측 상단 토글 버튼으로 최대/평균 데이터 전환이 가능합니다.
| 컬럼 | 설명 |
|---|---|
| Txn Name | 트랜잭션 이름 |
| Ratio(%) | 트랜잭션에 대한 비율 |
| Elapse Time (sec) | 트랜잭션 수행시간 |
| Agent count | 트랜잭션 수행 횟수 |
| SQL count | SQL 실행 횟수 |
| Remote count | Remote 횟수 |
4-4) Transmission List (트랜잭션 목록)
트랜잭션 상세 내용을 확인합니다. 트랜잭션에 대한 레벨별 개수를 보여주며, 응답 시간 차트에서 드래그한 영역의 상세정보를 표시합니다.
| 컬럼 | 설명 |
|---|---|
| Time | 트랜잭션 수집 시각 |
| WAS | 트랜잭션이 발생한 WAS명 |
| Txn Name | 트랜잭션 이름 |
| TID | 트랜잭션 ID |
| Start Time | 트랜잭션 시작 시간 |
| Elapsed Time (sec) | 트랜잭션 수행 시간 |
| Exception | 예외 발생 여부 |
| Exception Type | 예외 타입 |
| Client IP | 사용자 IP |
| Txn CPU Usage (%) | 트랜잭션 CPU 사용률 |
| App Elapsed Time (sec) | APP 수행시간 |
| SQL Elapsed Time (sec) | SQL 수행시간 |
| SQL Execution Count | SQL 실행 횟수 |
| SQL Fetch Count | SQL 결과값 행의 수 |
| SQL Fetch Time (sec) | SQL 결과값 반환 시간 |
| Remote Elapse Time (sec) | Remote 수행 시간 |
| Remote Count | Remote 수행 횟수 |
| Login Name | 로그인 사용자 이름 |
| Thread Memory Usage | 트랜잭션 메모리 사용률 |
| Open Conn | DB Open Connection 개수 |
5. Performance Analysis - Top Transaction Summary (상위 트랜잭션 분석)
메뉴 경로: Performance Analysis > Application > Top Transaction Summary
상위 트랜잭션에서 수행된 SQL, Remote 정보를 볼 수 있는 화면입니다.
5-1) Search Panel
| 항목 | 설명 |
|---|---|
| WAS | WAS 선택 |
| Time | 기간 설정 (최대 50일, 최소 1일) |
| Group By | 선택된 값 기준으로 데이터를 그룹화하여 조회 |
| Transaction List | Group By Transaction 선택 시, Order by, Top, Transaction Name, Elapsed Time(avg) 필터 가능 |
5-2) Top-Transaction List
기간에 수행된 Transaction Summary list를 보여줍니다. 최대 2,000개까지 조회 가능합니다.
| 컬럼 | 설명 |
|---|---|
| Transaction | 트랜잭션 이름 |
| Transaction Execution Count | 총 수행 횟수 |
| SQL Execution Count | SQL 총 수행 횟수 |
| Fetch Count | Fetch된 횟수 |
| Total Transaction Elapsed Time(sec) | Transaction 총 수행 시간 |
| Transaction Elapsed Time(max)(sec) | Transaction 최대 수행 시간 |
| Transaction Elapsed Time(avg)(sec) | Transaction 평균 수행 시간 |
| Transaction CPU Time(max)(sec) | 최대 Transaction CPU 시간 |
| Transaction CPU Time(avg)(sec) | 평균 Transaction CPU 시간 |
| Total SQL Elapsed Time(sec) | SQL 총 수행 시간 |
| SQL Elapsed Time(max)(sec) | SQL 최대 수행 시간 |
| SQL Elapsed Time(avg)(sec) | SQL 평균 수행 시간 |
| Total Remote Elapsed Time(sec) | Remote 총 수행 시간 |
| Remote Elapsed Time(max)(sec) | Remote 최대 수행 시간 |
| Remote Elapsed Time(avg)(sec) | Remote 평균 수행 시간 |
| Open Conn | Connection Pool Open 수 |
| Close Conn | Connection Pool Close 수 |
| Open Stmt | PrepareStatement Open 수 |
| Close Stmt | PrepareStatement Close 수 |
5-3) Transaction Trend Summary
Top-Transaction List에서 선택한 트랜잭션의 시간별 추이를 보여줍니다.
- 7일 이내 조회: 1시간 틱
- 7일 이상 조회: 1일 틱
- Line/Grid 전환 가능
5-4) Timed Transaction Summary
선택된 바의 10분/1시간 데이터를 보여줍니다.
- 7일 이내: 10분 단위 서머리
- 7일 이상: 1시간 단위 서머리
- Transaction Name 선택 시 최근 10분 스캐터 차트로 표시
5-5) SQL / Remote (Tree Map)
- SQL: 트랜잭션의 SQL 실행 비율을 Tree Map으로 표현. 기준 선택 가능 (Elapsed Time Total/Max/Avg, Execution Count)
- Remote: 트랜잭션의 Remote 실행 비율을 Tree Map으로 표현. Tree Map 선택 시 해당 SQL 전체 텍스트 확인 가능
6. Performance Analysis - Top SQL Summary (상위 SQL 분석)
메뉴 경로: Performance Analysis > Application > Top SQL Summary
상위 SQL에서 수행된 트랜잭션 정보를 볼 수 있는 화면입니다.
| 영역 | 설명 |
|---|---|
| Search Panel | WAS, Time (최대 50일, 최소 1일), Group By, SQL List (Order By, Top) |
| Top-SQL List | SQL Text, SQL Elapsed Time (ratio/total/max/avg), SQL Execution Count |
| SQL Trend Summary | 7일 이내 1시간 틱, 7일 이상 1일 틱 |
| Timed SQL Summary | 7일 이내 10분 단위, 7일 이상 1시간 단위 서머리 |
| Transaction | 선택된 바의 10분/1시간 데이터를 Tree Map으로 표현. 기준 선택 가능 (Elapsed Time Total/Max/Avg, Execution Count) |
7. Performance Analysis - Exception Summary (예외 분석)
메뉴 경로: Performance Analysis > Application > Exception Summary
7-1) Search Panel
| 항목 | 설명 |
|---|---|
| WAS | WAS 선택 |
| Time | 기간 설정 (최대 1일, 최소 1분) |
| Group By | Exception 또는 Transaction으로 그룹화 |
| Filters | Exception Name, Transaction Name 검색 |
7-2) 주요 화면
| 영역 | 설명 |
|---|---|
| Transaction Ratio / Exception Ratio | Group By가 Exception이면 트랜잭션 비율, Transaction이면 예외 비율을 Pie 차트와 Line Chart로 표시 |
| Total Exception Count / Total Transaction Count | Group By가 Exception이면 Total Exception Count, Transaction이면 Total Transaction Count를 분포도로 표시 |
| Exception List | 예외 상세 정보 Grid: Time, Transaction, WAS, Class Method, Exception, Log Text |
8. Performance Analysis - Trend Analysis (추이 분석)
메뉴 경로: Performance Analysis > Application > Trend Analysis
8-1) Search Panel
- WAS, Time (최대 7일, 최소 1분)
8-2) WAS Stat
WAS 주요 지표의 추이를 차트로 보여줍니다. Stat Change 기능으로 표시 지표 변경이 가능합니다.
8-3) Active Transaction
검색 패널에서 조회한 대상, 기간에 맞춰 Active Transaction 차트를 보여줍니다.
8-4) Active Session Grid
| 컬럼 | 설명 |
|---|---|
| WAS | WAS 이름 |
| Transaction | 트랜잭션 이름 |
| Class Method | 클래스 메소드 |
| Method Type | 메소드 타입 |
| Client IP | 클라이언트 IP |
| Login Name | 로그인 이름 |
| Transaction CPU Time | 트랜잭션 CPU 시간 |
| Pool | Pool |
| Elapsed Time | 수행 시간 |
8-5) Active Session (Sum) Grid
Active Session Grid에 Time 컬럼이 추가되어 시간대별 집계 데이터를 제공합니다.
9. 트랜잭션별 통계 알람 (Table Alert)
Query Manager를 사용하여 트랜잭션별 응답시간 통계 알람을 생성할 수 있습니다.
설정 단계
- Performance Analysis > Query Manager에서 트랜잭션 통계 쿼리 작성
- 사용자가 정의한 태그로 지정된 Application 타겟 대상
- 10분 단위 및 1시간 단위 트랜잭션 응답시간 비교 가능
- Save > 알람 지표로 저장
- Share Query 활성화, Data ID 지정, Data Type=Table, Alert Data 활성화
- Setting > Alert > User Alert > Type=Table 지표 등록
- Check Interval: 10분 적용 (필수)
- Notification Display Columns: Notification에 출력할 컬럼 정보 선택
- Alert > Alert List에서 발생 알람 확인
참고: https://app.clickup.com/25540965/v/dc/rbeb5-403498/rbeb5-2690678
10. 트랜잭션 수집 설정 가이드
10-1) EtoE 또는 트랜잭션 시작점 수집 설정 (x.advice)
/exem/java/cfg/ 폴더에 있는 x.advice 파일에 메소드 위빙을 설정하여 EtoE 또는 트랜잭션 시작점을 수집할 수 있습니다.
10-2) 특정 메서드 호출 기반 트랜잭션 수집 설정 (ext.jar)
특정 Class.Method 호출 기반으로 트랜잭션 데이터를 수집하는 방법입니다:
- 수집 대상 클래스 및 메서드 확인
XM_BOUND_HTTP.xInbound에 데이터 수집 정의x.advice에 매핑 정의ext.jar빌드 및 배포- 로그에서
ext.jar로딩 확인 - DB에서 트랜잭션 데이터 수집 확인
11. 알려진 이슈 및 참고사항
| 이슈 | 원인 및 조치 |
|---|---|
| 트랜잭션 트렌드 Detail에서 트랜잭션 클릭 시 API 에러 | API가 extra, trace_key 컬럼을 조회하나 DB 테이블에 해당 컬럼이 없어 발생. core 및 ingester를 호환 버전으로 패치 필요 |
| Scatter 차트 y축(elapsed time) 불일치 | 대규모 트랜잭션 처리를 위해 트랜잭션이 100ms 단위로 그룹화되어 표시되는 설계 사양. 정상 동작 |
요약
exemONE의 Transaction 모니터링 기능은 다음과 같이 구성됩니다:
- 실시간 모니터링: Apdex, TPS, Error Count 등 핵심 지표를 실시간 확인, Scatter Chart를 통한 응답시간 분포 확인
- Transaction Detail Slide: Information, Metric, Call Tree(타임바 포함), SQL Text, Exception, Active History 등 7개 탭으로 트랜잭션 상세 분석
- Performance Analysis: Transaction Trend(응답시간 분포도, 최대 1일), Top Transaction Summary(상위 트랜잭션, 최대 50일), Top SQL Summary(상위 SQL, 최대 50일), Exception Summary(예외 분석), Trend Analysis(추이 분석, 최대 7일) 등 다양한 분석 화면 제공
- 알람 기능: Query Manager를 통한 트랜잭션별 통계 알람(Table Alert) 설정 가능
- 수집 설정: x.advice, ext.jar을 통한 트랜잭션 시작점 및 특정 메서드 기반 수집 커스터마이징 가능