Release Notes WhaTap Support support@whatap.io 2019-03-07 1.0.1
본 문서는 WhaTap Release Notes 입니다.
Service Release Notes
Service 1.40.0
1.40.0
2020-03-10
공통
매트릭스 차트
- 일 단위 또는 시간 단위 이동 기능이 추가되었습니다.
메트릭스 알림 설정
- 템플릿 기능이 활성화됩니다.
메트릭스 알림설정
- 모든 제품별 메트릭스 알림설정이 신규페이지로 전환됩니다.
프로젝트 목록
- 프로젝트 추가 안내 가이드를 숨길 수 있도록 기능을 추가하였습니다.
404페이지(경로가 정해지지 않은 페이지)를 개선하였습니다.
Service 1.36.0
애플리케이션
히트맵
프로파일 리스트
- CSV export 기능 추가 및 시간 밀리 세컨드 까지 표시
트랜잭션 목록
- 컬럼선택 이상 (HTTP호출 시간, HTTP호출 건수) 'HTTP 호출 시간' 표시되나, 컬럼 선택 상태는 'HTTP 호출 건수’로 표기되는 현상 수정
트랜잭션 프로파일
프로파일 SQL만 TXT로 다운로드 - header정보 및 sql를 개행하는 텍스트 다운로더 추가
통계 모달
- 프로파일 항목 중 통계정보가 조회가능 한 경우 통계 모달 기능을 추가
멀티트랜잭션 다이어그램
- Leaf Node의 타임바 표시를 카드 배경으로 이동하고 "타임바" 버튼 클릭시에만 노출되도록 개편, Leaf Node를 무조건 우측에 배치하던 것을 호출 단계에 맞게 배치
드래그 복사
- 드래그 동작시 클릭 동작과 중첩되는 현상이 있었으나 클릭과 드래그 이벤트를 분리하여 처리했습니다.
멀티 서버 트랜잭션 추적
테이블 뷰
- 트랜잭션의 http 호출을 요약해서 볼 수 있는 컬럼을 추가
멀티트랜잭션 다이어그램
- Leaf Node의 타임바 표시를 카드 배경으로 이동하고 "타임바" 버튼 클릭시에만 노출되도록 개편, Leaf Node를 무조건 우측에 배치하던 것을 호출 단계에 맞게 배치
mtid 및 custId 조회 - 좌측 프로젝트 선택 묶어서 표기
차트 항목 클릭 시 테이블뷰로 이동 가능하다는 점 강조
- 커서 표기 및 호버 테두리 추가
쿠버네티스 프로젝트는 하위 프로젝트들을 기본 선택한 상태로 페이지가 넘어가도록
좌측 프로젝트 선택
- 새로고침 하더라도 선택한 항목 유지하도록
Service 1.34.0
1.34.1
2020-12-23
통합
Flex 보드
-
전체 프로젝트를 대상으로 대시보드 화면 구성이 가능합니다.
-
대시보드 템플릿을 제공합니다.
-
사전 정의된 위젯을 제공합니다.
-
즐겨찾기 기능을 이용해 대시보드를 좌측 메뉴에 추가할 수 있습니다.
이용내역
-
선납금 조회 화면을 추가했습니다.
-
지불현황에 잔고차감 내용을 표시합니다.
애플리케이션
멀티 액티브 트랜잭션
-
상단 막대 차트를 클릭하여 에이전트를 선택할 수 있습니다.
-
액티브 트랜잭션 프로파일을 보기 방식을 '새 창에 열기' 또는 '화면 안에서 보기’로 전환할 수 있습니다.
트랜잭션 프로파일
-
프로파일 스텝 정보를 CSV로 다운로드할 수 있습니다.
-
프로파일에서 수행한 SQL 정보를 CSV로 다운로드할 수 있습니다.
히트맵
- 화면 이동 시에도 컬럼 선택 상태를 유지합니다.
통계
- 칼럼선택, 정렬 등 선택 옵션에 표시한 칼럼명이 서로 일치하지 않는 현상을 수정했습니다.
트랜잭션 프로파일
- 화면 오류 현상을 수정했습니다.
1.34.0
2020-12-09
통합
실시간 알림
웹 브라우저 정책에 의해 화면 새로고침 이후 사용자의 동작(화면 클릭) 이전에는 알림 소리가 나지 않을 수 있습니다.
메트릭스 차트
-
cpu core 등 지표에 대하여 병합 옵션 사용시 합산 값으로 표시되도록 개선하였습니다.
-
차트를 연속해서 추가하는 경우 직전에 추가한 차트 사이즈로 추가되도록 개선하였습니다.
이용 내역
- 지불 현황에 매출전표를 확인 할 수 있는 링크를 추가했습니다.
애플리케이션
히트맵
-
히트맵 하단, 트랜잭션 검색 - 트랜잭션 목록의 컬럼 필드명을 통일하였습니다.
-
조회 범위에 3시간, 6시간 범위를 추가하였습니다.
대시보드
- 좌측 상단에 애플리케이션의 실시간 업무량을 확인할 수 있는 스피드 차트가 추가되었습니다.
멀티 액티브 트랜잭션
- 에이전트 선택 셀렉터와 차트를 연결하여 싱크되도록 구성하고, 대시보드에서 차트 클릭시 표기되던 페이지를 멀티 액티브 트랜잭션 방식으로 병합하였습니다.
통계 > HTTP호출
- CSV다운로드 시 누락되는 칼럼 수정
Service 1.32.0
1.32.0
2020-11-11
통합
통합 대시보드
- 벌집차트 위젯에 테마를 적용하고 카운트 합계 표시를 추가했습니다.
메트릭스 알림설정
- 알림 수정 화면에서 입력 도움 기능을 추가하였습니다.
메트릭스 보드
- 선택된 필드가 다수인 경우, 선택 항목이 영역을 벗어나 표시되는 현상을 개선했습니다.
프로젝트 목록
- 다수의 프로젝트가 존재하는 경우, 화면의 반응성이 저하되던 현상을 개선했습니다.
메트릭스 차트
- 카드 우상단의 복사 기능을 폐기했습니다.
로그 메트릭스
- 메뉴를 제거했습니다.
메트릭스 보드
- 다른 사람에게 공유하기 시도 시, 이메일 입력창이 표시되지 않는 버그를 수정했습니다.
메트릭스 보드
- 뷰모드에서 창크기 조절이 가능한 것으로 표시되던 버그를 수정했습니다.
컨테이너
화면간 이동을 페이지 전환 없이 가능하도록 개선했습니다.
마스터 메타
- 테이블의 Name 값 좌측 정렬로 가독성을 개선했습니다.
통계
- 에러 - CSV 익스포트 시 화면에 조회된 수치와 다르게 출력되는 버그를 수정했습니다.
컨테이너맵
- 우측 패널에서 지표값이 100%를 초과할 때 레이아웃이 깨지는 현상을 수정했습니다.
마스터 메타
- 이벤트 정보 미출력 버그를 수정했습니다.
애플리케이션
애플리케이션 목록
- 쓰레드 목록 - 쓰레드 소유자 ID 기준 추적이 용이하도록 소유자 ID 클릭 시 해당 쓰레드 정보가 펼쳐지는 기능을 추가했습니다.
액티브트랜잭션
- 확보된 모든 정보를 표시하도록 개선했습니다.
프로파일
- "User Token"의 이름을 ⇒ "User ID"로 변경했습니다.
히트맵
- 프로파일 목록 - "User Agent" 컬럼을 제거했습니다.
통계
- 에러 - CSV 익스포트 시 화면에 조회된 수치와 다르게 출력되는 버그를 수정했습니다.
토폴로지
- 하이라이트 필터 동작 불능 및 이후 토폴로지 갱신되지 않는 버그를 수정했습니다.
서버 설정
- 옵션 목록에 APP용 옵션이 표시되던 버그를 수정했습니다.
Service 1.30.0
1.30.0
2020-10-14
통합
메트릭스 차트
- CSV 다운로드 기능을 추가했습니다.
옵션 바 개편
- 화면 별 상이한 인터페이스의 옵션 바를 통일했습니다.
통합 애플리케이션 토폴로지
- 테마를 적용했습니다.
통합 대시보드
보로노이 차트에서 서버 모니터링의 경우 '최근 알람 개수' ⇒ '현재 서버 상태' 를 표시하도록 변경되었습니다.
서버 세션 끊김 시 동작을 개선했습니다.
회원가입 입력 보안성 및 정합성 검증을 강화했습니다.
사이트맵에 맞춰 네비게이션을 정리했습니다.
통합 대시보드
이퀄라이저 차트의 정렬이 되지 않던 현상을 수정했습니다.
컨테이너
컨테이너 알림 설정을 추가했습니다.
메타 토폴로지
- Namespace, Label 필터를 추가했고, 고정 배치로 변경했습니다.
대시보드
- APDEX 도움말을 추가했습니다.
애플리케이션 서비스 대시보드
- 멀티서비스 대시보드와 애플리케이션 서비스 대시보드를 한 화면에서 볼 수 있도록 메뉴를 통합했습니다.
컨테이너 맵
- 타임라인을 시간 단위 바 차트로 개편했습니다.
통계 메뉴를 통합했습니다.
트랜잭션 프로파일 성능을 튜닝했습니다. (스크롤 지연 현상 개선)
애플리케이션
알림 설정
- 가로 카드 뷰 스타일로 개선했습니다.
대시보드
- APDEX 도움말을 추가했습니다.
대시보드
- 우측 패널을 추가하여 시계열 멀티 라인 차트 및 개별 차트 추가했고, 메트릭스 차트 링크 추가했습니다.
트랜잭션 검색
- 프로파일 새 창(탭)으로 열 수 있도록 하는 기능을 추가했습니다.
애플리케이션 서비스 대시보드
- 멀티서비스 대시보드와 애플리케이션 서비스 대시보드를 한 화면에서 볼 수 있도록 메뉴를 통합했습니다.
통계 메뉴를 통합했습니다.
트랜잭션 프로파일 성능을 튜닝했습니다. (스크롤 지연 현상 개선)
Service 1.28.0
1.28.0
2020-09-09
통합
통합 대시보드
- 신규 위젯(벌집 차트)이 추가되었습니다.
통합 메트릭스 대시보드
- 데이터 호출 성능 개선하였습니다.
보로노이 차트
-
툴팁이 개선되었습니다.
-
최근 알림 발생을 확인할 수 있도록 추가했습니다.
-
각 영역의 색상이 달라지지 않도록 수정했습니다. (추후 임계치를 설정하여 각 영역 색상의 차등을 줄 수 있도록 다시 추가될 예정입니다.)
통합 대시보드
- 액티브트랜잭션 TOP5 추가시 대시보드가 표시되지 않는 버그를 수정하였습니다.
통합 대시보드
- 라인 차트 수정시 간헐적으로 Y축의 값이 자동으로 조정되지 않는 버그를 수정하였습니다.
애플리케이션
메트릭스 차트
- 신규 메뉴로 추가되었습니다.
애플리케이션 대시보드
- 스타일 개선을 위해 차트 배치를 수정하였으며, Apdex 지표를 확인할 수 있는 차트가 추가되었습니다.(JAVA에서만 이용 가능합니다)
MSA 분석
- Caller-Callee 테이블에서 트리 구조로 확장하는 기능을 추가하였습니다.
메뉴
- 사이트맵 및 좌측 메뉴를 개편하였으며, MSA 분석 메뉴를 실험실에서 정식 메뉴로 이동하였습니다
애플리케이션 대시보드
- 애플리케이션 선택 옵션의 편의성을 개선하였습니다.
알림 설정
- Inactive 알림 발생의 기본 조건을 1분으로 조정하였습니다.
알림 설정
- 임계치 초기값이 메뉴에 없는 값으로 표시되는 버그를 수정하였습니다.
히트맵 트랜잭션
- 화살표 버튼을 통해 시간 구간 변경 시에 연월의 변경이 정상적으로 이루어지지 않는 버그를 수정했습니다.
서버
메트릭스 차트
- 신규 메뉴로 추가되었습니다.
서버 목록 > 서버 상세보기
- 프로세스 목록의 CSV 내보내기 기능을 추가하였으며, 편의성을 개선하였습니다.
대시보드 > 리소스 이퀄라이저
- 서버 선택 기능을 추가하였습니다.
정비계획
- 프로젝트 단위로 정비계획 적용하는 기능을 추가하였습니다.
알림 설정
- 카드 뷰 형태로 UI를 개선하였습니다.
에이전트 설치
- 윈도우 silent install 경로 오류를 수정하였습니다.
데이터베이스
성능 개선
-
데이터 조회 및 상세 분석 기능의 성능을 개선하였습니다.
-
적용 메뉴: 카운트 추이, 테이블 스페이스 용량 증감, SGA 사이즈 증감, 테이블 데이터 사이즈 증감, 데드락, 알림 기록
알림 설정
- 카드 뷰 형태로 UI를 개선하였습니다.
인스턴스 목록
- 인스턴스 별 코어 수를 저장하는 기능을 복구하였습니다.
컨테이너
메트릭스 차트
- 신규 메뉴로 추가되었습니다.
메뉴
- 사이트맵 및 좌측 메뉴를 개편하였으며, MSA 분석 메뉴를 실험실에서 정식 메뉴로 이동하였습니다
컨테이너 목록
- 컨테이너 선택 후 Network 탭에 Write BPS 차트를 추가하였습니다.
컨테이너 볼륨
- 조회 오류를 수정하였습니다.
모바일
URL 모니터링
- Android 단말에 URL 모니터링 기능 추가하였습니다.
프로젝트 상단 이벤트 기록 메뉴에서 이벤트 클릭 시 상세 분석을 볼 수 있도록 기능을 추가하였습니다.
애플리케이션 모니터링
- 차트 순서를 사용성이 높은 순으로 재배치 하였습니다
Service 1.26.0
1.26.0
2020-08-03
통합
통합 메트릭스 대시보드
- 설정 메트릭스별 별칭 부여 기능을 추가하였습니다.
통합 메트릭스 대시보드
- 메트릭스 임계치별 색상값 지정을 통해 효과적으로 상태를 모니터링할 수 있는 신호등 위젯을 추가하였습니다.
통합 메트릭스 대시보드
- 위젯별 툴팁 표현을 개선하였습니다.
통합대시보드
- 히트맵 드래그 시 트랜잭션 목록에 프로젝트명이 잘못 표기되는 버그를 수정하였습니다.
애플리케이션
차트 개인화 설정
기능을 추가하였습니다.-
위치: 대시보드 > 평균 응답시간, TPS 위젯 설정 아이콘 클릭
-
가로선 지정: 시계열 차트 영역에서 지정 임계치에 해당하는 가로선과 라벨, 색상을 표현할 수 있습니다. ex) 경고선
-
Y축 지정: Y축 최대값을 변경할 수 있습니다.
SQL 통계
- 표준편차를 이용한 정렬 기능을 추가하였습니다.
성능 추이
- 차트 이미지 내보내기 기능을 추가하였습니다.
성능 카운트 차트
- 액티브스테이터스 소켓 선택 시 차트 표현 이상 현상을 수정하였습니다.
서버
리소스보드
- 화면 진입 시점으로부터 24시간 내 현재 진행중인 알림이 있을 경우 실시간 알림 패널이 자동으로 펼쳐집니다.
서버 목록
- inode 관련 컬럼을 추가하였습니다.
리소스보드
- OS 종류 및 서버 상태 표현 방법을 개선했습니다.
서버 목록
- 태그 및 서버 검색을 통한 필터링 기능 적용시 모니터링 관리 기능의 서버 전체하기가 함께 적용됩니다.
보고서 관리자 기능
- 이메일 발송 예약을 위한 이메일 등록 편의성을 개선하였습니다.
리소스보드
- 히트맵 드래그 시 서버 목록이 갱신되지 않던 버그를 수정하였습니다.
리소스보드
- 히트맵 드래그 시 서버 목록이 갱신되지 않던 버그를 수정하였습니다.
데이터베이스
성능 개선
-
데이터 조회 및 상세 분석 기능의 성능을 개선하였습니다.
-
적용 메뉴: 카운트 추이, 카운트 장기추이, 카운트 추이 비교, 데이터베이스 파라미터, SQL 통계
컨테이너
Out of Memory Killed Container
메뉴를 추가하였습니다.-
위치: 사이트맵 > 실험실 > Out of Memory Killed 컨테이너
-
memLimit : 사용자가 설정한 최대 메모리 크기 예) 350MB 초과 시 재시작(oomkilled)
-
Memory total rss: 메모리 사용량
-
Span: OOM Killed 발생 시간으로 부터 전후의 정보를 조회하기 위해 지정 (ms)
퍼포먼스 요약
- 컨테이너의 상태 관련 지표를 추가하고 요약 위젯의 스타일을 개선하였습니다.
ISTIO
관련 설정 내용을 추가하였습니다.
컨테이너 목록
- CPU per Quota 칼럼을 추가하였습니다.
성능카운트
- 성능 지표별 단위 표현 내용을 보완하였습니다.
Service 1.24.0
1.24.0
2020-07-03
공통
24시간의 시작시간 저장
- 24시간일 때 프로젝트의 pcode와 계정의 email을 키로 사용하여 개별적으로 시작시간을 저장하여 사용합니다.
알림 수신 설정
- 수신 레벨 옵션을 추가하였습니다.
시계열 차트
- 복수 일자 범위 차트에 날짜 구분선을 추가하였습니다.
설치 안내 페이지를 개편하였습니다.
권한 변경
- 그룹 및 프로젝트 소유자 변경 시 소유권 이전 계정의 결제 정보 등록 여부 체크합니다.
조회 범위 선택
- 1일 대신 24시간으로 노출하여 시작 시간을 지정할 수 있도록 개선하였습니다.
멀티라인 차트
- 지표값이 큰 라인이 앞으로 노출되도록 개선하였습니다.
통합
프로젝트 목록
-
현재 보고 있는 프로젝트가 목록에 하이라이트 되도록 개선하였습니다.
-
프로젝트명으로 정렬하여 탐색 용이성을 개선하였습니다.
실시간 알림
-
필터 상태를 저장하도록 개선하였습니다.
-
발생 날짜를 테이블에 표시하였습니다.
-
도움말을 보완하였습니다.
-
컨테이너 알림 클릭시 컨테이너맵으로 이동하도록 하였습니다.
태그카운트보드
- 차트 툴팁에서 불필요한 값을 제외하였습니다.
실시간 액티브 트랜잭션
-
전체 프로젝트 선택 기능을 추가 하였습니다.
-
쿠버네티스 네임스페이스에서도 사용 가능하도록 대응하였습니다.
-
비활성 애플리케이션도 목록에 노출하였습니다.
통합대시보드
-
이퀄라이저 위젯
- 표시 공간 부족시 문자열의 뒷부분만 노출하도록 개선하였습니다. -
션 만료된 경우 로그인 페이지로 전환되도록 개선하였습니다.
공통
-
통합 메뉴의 사이트맵을 추가하였습니다.
-
이용 내역 메뉴를 좌측 메뉴에 노출하였습니다.
사이트맵
-
메뉴 하이라이트 필터를 추가하였습니다.
-
가독성을 개선하였습니다.
공통
- 메뉴 접근 시 언어가 영어로 초기화되는 현상을 수정하였습니다.
프로젝트 목록
-
그룹 선택 상태에서 돌아가기 이동 시 프로젝트 목록이 바뀌지 않는 문제를 수정하였습니다.
-
카드 뷰에 빈값으로 표기되는 문제를 수정했습니다.
프로젝트 그룹
- 쿠버 프로젝트의 Node수와 컨테이너수가 나오지 않는 문제를 수정했습니다.
실시간 알림
- 해소 알림이 노출되는 건을 수정하였습니다.
태그 대시보드
-
수집 주기가 긴 데이터 미표시 건을 수정하였습니다.
-
위저드 설정의 비교 시간이 1일로 고정되는 현상을 수정하였습니다.
통합대시보드
-
시리즈 텍스트 위젯
- x축 시간 범위가 계속 늘어나는 현상을 수정하였습니다. -
커스텀 텍스트 위젯
- 링크 텍스트가 보이지 않는 문제를 수정했습니다. -
전체화면 전환 시 우측 공간이 비는 현상을 수정하였습니다.
애플리케이션
통계 & 스택
- okind / onode 복수 선택 조회 기능을 추가하였습니다.
에이전트 설치
- wget을 통한 에이전트 다운로드 기능을 추가하였습니다.
프로젝트 멤버/그룹 멤버
- 소팅 기능을 추가하였습니다.
MSA 모달 차트뷰
- 데이터의 비동기시 로딩중 표기를 추가했습니다.
프로파일
-
멀티서버 트랜잭션
-
프로젝트명이 표시되지 않는 문제를 수정하였습니다.
-
MTID에 의한 검색 기능을 추가하였습니다.
-
-
모달 닫을 때 스크롤 이동하는 현상을 수정하였습니다.
-
외부 팝업 로딩 전에 닫으면 다시 팝업을 열 수 없는 문제를 수정하였습니다.
-
SQL 바인딩에 인용부호 대응이 안되는 건을 수정하였습니다.
-
Safari 브라우저에서 정상 동작하지 않는 문제를 수정하였습니다.
통계
-
트랜잭션 목록에서 스택 버튼 클릭 시 에러 페이지로 전환되는 문제를 수정하였습니다.
-
칼럼선택을 클릭시 전체 선택된 것으로 표기되는 이슈를 수정했습니다.
-
클라이언트 브라우저의 필터값이 없는데 잘못 표기되는 문제를 수정했습니다.
-
트랜잭션 목록에서 차트
-
클릭 시, okind / onode 필터 선택이 트랜잭션 검색 페이지에 반영되지 않는 현상과 차트의 구간에 맞는 기간이 반영되지 않는 문제를 수정하였습니다.
-
차트의 시간 구간이 5분으로 고정되어 있는 문제를 수정했습니다.
-
에이전트 목록
- 에이전트 삭제 기능이 동작하지 않는 문제를 수정하였습니다.
큐브
- 5분 중 일부 구간의 데이터만 존재하는 경우 x축이 잘못 표시되는 현상을 수정하였습니다.
대시보드
- TPS 차트가 평균으로 표시되고 있어 합산 값으로 표시되도록 수정하였습니다.
서버
서버 목록
- 프로세스 그룹 등록 기능을 추가하였습니다.
서버 상세
-
모달에 최초 데이터 미표시 되는 건을 수정하였습니다.
-
대상 서버 변경 시 기 표시 데이터에 반영되지 않는 현상을 수정하였습니다.
알림 기록
- 태그 카운트 알림을 추가하였습니다.
컴파운드아이
- 마우스 휠을 통해 차트를 줌인/아웃하고, 화면 영역 전체를 활용하여 차트를 표현할 수 있도록 재배치하였습니다.
Service 1.22.0
1.22.0
2020-06-03
공통
실시간 알림 기능이 추가되어, 권한을 보유한 모든 프로젝트의 실시간 알림 현황을 확인하실 수 있습니다.
테마 기능을 개편하여 추가하였습니다.
프로젝트 멤버/그룹 멤버
- 소팅 기능을 추가하였습니다.
보고서
- 예약 발송 기능을 개편하여 사용 편의성을 확보하였습니다.
타 프로젝트로 이동시 알림 팝업이 발생하던 현상 및 알림 목록에 이전에 보고있던 프로젝트의 알림이 나타나는 현상을 수정하였습니다.
통합 대시보드 - 시리즈 텍스트 차트
- 멀티 라인 차트의 텍스트가 평균 및 합산으로 표시되지 않는 버그를 수정하였습니다.
통합 대시보드 - 시리즈 텍스트 차트
- 시리즈 텍스트 위젯 값이 1로 표시되는 현상을 수정하였습니다.
계정 정보 관리
- 나이스페이 등록 오류를 수정하였습니다.
애플리케이션
애플리케이션 대시보드/통합 대시보드/히트맵
- 애플리케이션 그룹 복수 지정이 가능하도록 기능을 개션하였습니다.
프로파일
- CPU 및 메모리 사용량 정보가 있는 경우, 컬럼 선택을 통해 표시 가능하도록 개편하였습니다.
애플리케이션 대시보드
- TPS, 사용자 수 전일 비교 차트에 금일 데이터만 출력되는 현상을 수정하였습니다.
프로파일
- 프로파일 다이어그램 클릭 시 해당 스텝으로 이동하는 기능이 작동하지 않던 현상을 수정하였습니다.
클라이언트 브라우저
- 검색 목록에 건수가 0건인 데이터가 표시되는 현상을 수정하였습니다.
에이전트 설정
- 쓰레드 목록 테이블 컬럼이 이상해지는 현상을 수정하였습니다.
서버
서버 목록
- 경고 또는 위험 상태 서버의 이벤트 스냅샷 정보를 확인하는 기능을 추가하였습니다.

-
서버 목록의 상태 칼럼을 클릭
-
경고 알림 제목을 클릭하여 알림 상세화면 링크
리소스 이퀄라이저
- 자원 수가 많은 경우, 차트의 가독성이 떨어지는 문제를 해결하기 위해 차트별 최소 높이를 지정하였습니다.
서버 목록 및 상세
- 운영 체제에 따라 표시되는 지표가 변경되도록 수정하였습니다.
서버 목록
- 비활성 서버 클릭 시 서.
서버 목록
- 칼럼 선택 메뉴 옵션 선택시 에러 발생하는 현상을 수정하였습니다.
디스크 상세 팝업
- 알림 활성화 버튼이 동작하지 않던 현상을 수정하였습니다.
Service 1.20.0
1.20.1
2020-05-13
1.20.0
2020-05-07
애플리케이션
탑스택, 유니크스택
비교 구간 선택 옵션 추가 (스택 간 비교 칼럼, 추이 그래프 반영)
프로파일
SQL 내 정규화 파라메타 이후가 주석으로 표시되는 현상 수정 (정규화 파라메타를 $로 변경하여 표시)
프로파일
프로파일 다이어그램 클릭 시 해당 스텝으로 이동되지 않는 버그 수정
컨테이너
알림 설정
애플리케이션 알림 기능 추가
사이트맵
컨테이너에 노출되어 있지 않던 애플리케이션 기능을 추가
-
성능지표(카운트) 이상치 탐색
-
성능 추이
-
애플리케이션 큐브
-
애플리케이션 - 에이전트 설정, 쓰로틀링 설정, 환경변수, 실행 환경변수, 힙 히스토그램, 로딩된 클래스, 라이브러리 버전, 쓰레드 목록/덤프, 소켓 오픈 개수, 메소드 성능 상태, 데이터소스 상태, 에이전트 로그, 시스템 GC, 힙 덤프, 모듈 의존성, 에이전트 상태
-
통계/보고서 - 토폴로지 - 애플리케이션 통계 토폴로지, 인스턴스 통계 토폴로지, 그룹 통계 토폴로지
-
관리 - 정비 계획
-
Laboratory - MSA 분석, 액티브 트랜잭션
프로젝트 목록
네임스페이스 프로젝트가 쿠버네티스 프로젝트 그룹에 표시되지 않는 버그 수정
Service 1.18.0
1.18.0
2020-04-08
통합모니터링
프로젝트 목록
확장 카드뷰 기능 추가
태그카운트 보드
스피드미터 차트가 그려지지 않는 현상을 수정
태그카운트 보드
차트 지표 고정 간격 옵션 지정시 차트 포맷 지정 불가 현상 수정
Service 1.16.0
1.16.0
2020-03-19
통합모니터링
새로운 버전의 메뉴 기능
- 프로젝트 메뉴 하단 '새로운 화면 사용해보기' 버튼을 클릭하여 체험이 가능합니다.
주요 기능
-
그룹 선택, 프로젝트 간 이동이 편리합니다.
-
프로젝트 선택 시 해당 프로젝트 메뉴가 하단에 표시되며,
메뉴 이동 기록이 저장되어 히스토리 기능(상단 메뉴 제목을 클릭)을 통해 기록 확인 및 이동이 가능합니다.
신규 레이아웃의 애플리케이션 대시보드

신규 레이아웃의 프로젝트 목록

프로젝트 목록
카드뷰 스타일 개선
이메일 알림
- 잘못된 형식의 이메일 또는 이메일 플랫폼 상 오류로 전송 실패가 반복되는 경우 이메일 알림 서비스가 일시 제한되며, 이벤트 수신 설정 메뉴에서 재활성 기능 제공
통합대시보드
위젯 편집 - 컴파운드아이 차트타입 선택 시 카테고리 자동 선택
애플리케이션
MSA 서비스패턴 분석
기능 추가 - 멀티서버 트랜잭션 분석을 위한 통계적 방식의 분석 기능 - 사이트맵 - Laboratory - MSA 분석 메뉴 제공
액티브 트랜잭션
기능 추가 - 엑티브 트랜잭션, SQL, HTTP 호출 정보를 중심으로 실시간 모니터링하기 위한 기능 - 사이트맵 - Laboratory - 액티브 트랜잭션 메뉴 제공, 통합대시보드 - 위젯 편집 시 차트 유형으로 선택 가능
트랜잭션 검색
복수 검색 조건에 의한 트랜잭션 프로파일 조회 기능 탑재
애플리케이션 대시보드
일간 TPS, 일일 사용자 수 추이 전일 비교 차트 추가
통계
조회 시간 범위 3일, 7일, 10일 기간 설정 옵션 추가
Service 1.14.0
1.14.0
2020-02-26
통합모니터링
대시보드
서버 모니터링 프로젝트의 서버별 CPU, Memory 사용율 및 서버 활성상태를 표시하는 컴파운드아이 위젯 차트를 추가
대시보드
읽기 전용으로 공유하는 기능 추가, 프로젝트 멤버가 아니더라도 공유 받은 대시보드를 볼 수 있으며, 수정은 불가능 하도록 기능 제공
대시보드
제품 타입 선랙기능 개선, 비활성화된 제품타입이 보여지는 경우에 선택할 수 있는 옵션으로 자동으로 바뀌는 기능 추가
애플리케이션
성능지표(카운트) 차트
차트 추가 시 이전 변경된 위젯 하위에 배치하도록 하여 스크롤되어 최하단으로 이동하는 현상 수정
멀티서버 트랜잭션
모달 상태에서 테이블 뷰로 이동한 이후 테이블을 확장시키면 나오는 프로파일 뷰가 열리자마자 닫히는 현상 수정 [1.12.0 기 반영]
프로파일 다이어그램
트랜잭션 프로파일의 마지막 스텝 이의 시간선택기능에서 통계 최대 1일, 트랜잭션 검색 최대 1시간으로 최대 지정시간 적용 후 액티브스택이 확보된 경우 트랜잭션의 총 경과 시간까지의 차트가 아닌 마지막 스텝 까지만 차트에 표현되는 버그 수정
옵션바
상단의 시간선택기능에서 통계 최대 1일, 트랜잭션 검색 최대 1시간으로 최대 지정시간 적용
Service 1.12.0
1.12.0
2020-02-05
공통
대시보드
탬플릿 모달에서 프로젝트 목록 선택 시 프로덕트 타입에 맞는 목록만 나타나도록 수정
태그 대시보드
바차트 기능 제거
프로젝트 목록
파이어폭스에서 스타일 깨짐 현상 수정
통합대시보드
이퀄라이저 차트에서 위젯 사이즈에 따라 일부 데이터가 영역을 벗어나 표시되지 않는 버그를 수정
태그 대시보드
위젯에 지표 추가 시 미동작 버그 수정 [1.10.0에 기 반영]
태그 대시보드
기존 위젯 수정 시에 문제 발생 버그 수정
태그 대시보드
시리즈 차트 옵션 설정 문제 버그 수정
애플리케이션
탑스택
특정 스택을 기준으로 호출, 피호출 스택 파악이 가능한 기능을 추가 (다이어그램 표시상태에서만 사용 가능) [1.10.0에 기 반영]
PHP 에이전트 프로젝트 대시보드
에 액티브 스테이터스 위젯 추가
탑스택/유니크스택
하단 스택 비율 차트를 제거
태그 카운트 조회
조회 방식 수정
Service 1.10.0
1.10.0
2020-01-23
고객 요청 사항
알림 기록
CSV파일 다운로드 기능 추가
SQL 통계
최소 시간 항목 추가
통합대시보드
위젯에서 차트 유형 추가 (이퀄라이저 차트, 시리즈 텍스트 차트)


공통
계정
사용량 확인 기능 추가
통합대시보드
위젯 추가 시, 프로젝트 항목 중 제한 상태의 프로젝트는 나타나지 않도록 기능 수정
회원가입
절차 개선 및 간소화
프로젝트 목록
화면 스타일 개선 및 신규 프로젝트 생성 후 안내 기능 개선
에이전트 설치
화면 스타일 개선
통합대시보드
시리즈 비교 위젯이 자정 이후 차트 나오지 않은 버그 수정
애플리케이션
트랜잭션 프로파일
에러 발생 스텝에 에러 마크 추가
트랜잭션 프로파일
요약 태그를 클릭하여 태그 성능 지표 조회 연계 기능 추가
에이전트 업데이트
에이전트 별칭 노출
python 대시보드
액티브 스테이터스 차트 추가
알림 기록
CSV파일 다운로드 기능 추가
SQL 통계
최소 시간 항목 추가
성능지표 카운트 차트
액티브 스테이터스 지표 항목 추가
에이전트 설정
도움말 닫기 기능 추가
트랜잭션 검색
트랜잭션 ID로 검색 가능하도록 기능 개선
트랜잭션 프로파일
SQL문 1,000건 이상인 경우 성능 개선
트랜잭션 프로파일
ID 클릭 시 태그카운트 데이터 조회 화면으로 이동할 수 있도록 개선
액티브 트랜잭션
목록 조회한 상태에서 상세 내용 리프레쉬가 가능하도록 기능 개선
에이전트 설정
설정 항목이 없는 경우, 신규 설정이 추가되지 않는 버그 수정
에이전트 설정
설정 입력 시, html tag가 삽입되는 버그 수정
액티브 스택
차트 시간축이 반대 방향으로 표시되는 버그 수정
멀티 서버 트랜잭션
테이블 표시 시, 호출 순으로 정렬되지 않는 버그 수정
멀티 서버 트랜잭션
차트가 화면 전체 영역으로 표시되지 않는 버그 수정
Service 1.8.0
1.8.0
2019-12-27
공통
사이트맵
메뉴 이름 마우스 호버 시 메뉴 설명 기능 추가
상단 계정 메뉴 그룹에 과금 관리
메뉴 링크 추가
프로젝트 대시보드 화면 Safari 브라우저
스타일 개선
프로젝트 목록의 리스트뷰 모드
중 컨테이너 프로젝트에서 수집 중인 주요 지표를 표시하도록 개선
일부 화면에서 상단 문의하기
기능이 작동하지 않는 현상을 수정
애플리케이션
에이전트 목록 쓰레드 목록/덤프
에서 쓰레드 조회 새로고침 기능 추가
프로젝트 대시보드 내 액티브트랜잭션
차트를 클릭하여 조회한 애플리케이션 선택 사항을 새로고침 후에도 유지하도록 개선
트랜잭션 프로파일 화면 크기에 맞게 프로파일 다이어그램
차트 크기 갱신
트랜잭션 프로파일 내 통계 링크
클릭 시 트랜잭션 시작 시간 기준 해당일의 동일 서비스(URL) 트랜잭션 통계 분석 화면 제공
Chrome
최신 버전(79.0+)에서 트랜잭션 프로파일이 나타나지 않는 현상을 수정
트랜잭션 검색
에서 타 메뉴 이동 후 애플리케이션 선택 시 전체 선택 범위에서 변경되지 않는 현상을 수정
성능 추이
에서 액티브 트랜잭션 차트의 지표 단위가 byte로 표시되는 버그를 수정
에이전트 목록 쓰로틀링 설정
에서 후보 URL 검색시 편집 중인 쓰로틀링 설정 내용이 사라지는 버그 수정
에이전트 목록 쓰레드 목록
에서 상세화면 조회시 리프레시 버튼이 없는 문제 수정
Java Agent Release Notes
Java Agent 2.0
v2.0_32
Custom Pool 카운트 추적 옵션 추가
Custom Pool을 추적할때 메소드 설정 옵션 "custom_pool_method_total"이 추가 되었습니다.
custom_pool_method_idle과 custom_pool_method_total 중 하나만 설정하면 됩니다.
custom_pool_id=myPool custom_pool_method_active=getActiveConnection custom_pool_method_idle=getIdleConnection custom_pool_method_total=getTotalConnection
v2.0_30
커스텀 Connection Pool Count 추적을 위한 옵션 추가
기 정의되지 않은 클래스들을 Pool사이즈를 카운팅하기 위한 옵션이 추가되었습니다.
custom_pool_id=myPool custom_pool_method_active=getActiveConnection custom_pool_method_idle=getIdleConnection
custom_pool_id는 custom_pool_classes에 설정된 값과 일치 해야합니다.
일반적으로 아래와 같이 설정됩니다.
custom_pool_classes=myPool@com.mydb.MyDataSource custom_pool_id=myPool custom_pool_method_active=getActiveConnection custom_pool_method_idle=getIdleConnection
"myPool"이라는 id에 custom_pool 설정이 적용됩니다.
Custom Pool의 정보를 조회하면서 에러가 발생하면 1시간에 한번씩 로그에 기록됩니다. |
컨넥션 풀 클래스 HOOK옵션을 분리
컨넥션 풀 클래스를 Instrument를 결정하는 옵션과 실제 데이터를 수집하는 옵션을 분리했습니다.
hook_hikari_pool_enabled = true hook_dbcp_pool_enabled = true hook_tomcat_pool_enabled = true hook_weblogic_pool_enabled = true hook_jeus_pool_enabled = true hook_jboss_pool_enabled = true hook_jedis_pool_enabled = true hook_hybris_pool_enabled = true hook_c3p0_pool_enabled = true
hook_xxx는 자바 프로세스가 재기동 되기 전에 설정되어야하지만 데이터를 수집하는 옵션 (ex hikari_pool_enabled)은 실행중에 변경이 가능합니다. |
v2.0_27
내부 에러 처리 클래스 인스턴스변경
와탭 내부에서는 에러 정보를 효과적으로 수집하기 위해 와탭에서 정의한 에러 클래스를 사용하고 있습니다. 이 에러 클래스들을 인스턴스를 관리하는 클래스를 추가 하였습니다.
외부 기능적으로 이전 버전과 차이는 없습니다.
JVM 버그가 의심되는 에러가 발견되어 회피 목적으로 변경하였습니다.
Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class whatap.error.CONNECTION_OPEN_FAIL
v2.0_26
액티브스택 수집 최적화
에이전트 tps에 따라 액티브 스택 수집 최적화 옵션 자동 적용 기능을 추가 했습니다.
auto_active_stack_count=true
-
TPS < 100
active_stack_count = 50 -
TPS < 300
active_stack_count = 30 -
TPS >= 300
active_stack_count = 20
auto_active_stack_count의 기본값은 가변적입니다. active_stack_count가 명시적으로 설정되어있으면 기본값이 false이고 명시적으로 whatap.conf에 설정되어 있지 않으면 기본값이 false입니다. |
액티브스택 성능 부가 정보 옵션 추가
액티브 스택을 수집할때 해당 트랜잭션의 성능 상태를 추가로 수집할 수있습니다.
active_stack_prefx_enabled=false
whatap.conf에 active_stack_prefx_enabled 값을 true로 설정하면 액티브스택 수집 시점의 트랜잭션의 성능 정보를 수집합니다.
-
cpuTime : cpu사용 millisecond
-
malloc : 메모리 사용 bytes
-
sqlCount : 현 트랜잭션의 총 SQL 건수
-
sqlTime : 현 트랜잭션의 총 SQL시간
-
httpcCount : 현 트랜잭션의 총 HTTPCall 건수
-
httpcTime : 현 트랜잭션의 총 HTTPCall 시간
-
actSqlDbc : 수행중인 SQL의 DB
-
actSql : 수행중인 SQL
-
actHttpc : 수행중인 외부 호출 URL
v2.0_25
-
TXID기반 추적 방식 리팩토링
-
Weaving 플러그인 새로 빌드함
-
Java Process CpuTime 조회 오류 수정
-
Exception 경고시 Class이름과 메세지 포함되도록 변경
v2.0_21
v2.0_16
v2.0_15
v2.0_14
v2.0_11
BCI디버깅을 위한 덤프
hook_dump_enabled=true
hook_dump_enabled=true를 설정하면 와탭 에이전트에 의해 변경되는 클래스는 모든 덤프합니다.
${WHATAP_HOME}/classes에 수정된 파일이 모두 덤프됩니다.
어떤 클래스가 BCI에 의해 변경되었는지를 확인할 수있습니다. |
JDBC관련 기본 BCI 대상 클래스 OFF 옵션
와탭에이전트는 주요하게 SQL을 추적해야하는 JDBC관련 클래스를 내부에 기본 설정하고 있습니다.
이 기본 설정을 OFF할 수있는 옵션이 추가 되었습니다.
hook_jdbc_default_enabled=true hook_jdbc_stmt_default_enabled=true hook_jdbc_pstmt_default_enabled=true hook_jdbc_cstmt_default_enabled=true hook_jdbc_rs_default_enabled=true
기본값은 true입니다. Statement, PreparedStatement, CallableStatement, ResultSet클래스에 대해서 구분하여 지정할 수있습니다.
hook_jdbc_default_enabled의 설정값은 hook_jdbc_stmt_default_enabled의기본값이됩니다.
BCI 대상 클래스 제어
BCI을 위한 모듈의 동작여부를 제어합니다. 아래 옵션들은 자바 프로세스를 재기동해야 정상 적용됩니다.
hook_http_enabled=true hook_serivce_enabled=true hook_dbsql_enabled=true hook_dbopen_enabled=true hook_methods_enabled=true hook_socket_enabled=true hook_file_enabled=true
-
hook_http_enabled: HttpServlet, ServletFilter등에 대한 기본 BCI 설정
-
hook_serivce_enabled: 직접 설정한 Tx시작 제어
-
hook_dbsql_enabled: JDBC관련 BCI 제어 , hook_jdbc_default_enabled는 기본 hooking 설정된 클래스를 무시하는 것이고 hook_dbsql_enabled는 해당 BCI 기능 자체는 OFF 할 수 있습니다.
-
hook_dbopen_enabled: getConnection(Connection Open)부분에 대한 BCI 제어
-
hook_methods_enabled: 메소드 프로파일에 대한 BCI 제어
-
hook_socket_enabled: Socket Open추적(트랜잭션 프로파일)에 대한 BCI제어
-
hook_file_enabled: File Open 추적(트랜잭션 프로파일)에 대한 BCI제어
v2.0_09
HTTP 기본 추적 제어
javaee 서블릿은 기본으로 http 요청을 추적합니다. 주요 트랜잭션 시작 클래스가 와탭 에이전트에 등록되어있기 때문입니다.
javax.servlet.http.HttpServlet org.apache.catalina.filters.FilterBase weblogic.servlet.jsp.JspBase org.apache.catalina.core.ApplicationFilterChain
javax.servlet.Filter
기본 클래스/인터페이스는 hook_http_default_enabled=false를 설정하면 제외됩니다.
hook_http_default_enabled=true
HTTP 클래스 추가를 위해서는 hook_httpservlet_classes를 사용합니다.
hook_httpservlet_classes=javax.servlet.http.HttpServlet
HTTP 인터페이스를 추가를 위해서는 hook_http_filters를 사용합니다.
hook_http_filters=javax.servlet.Filter
hook_httpservlet_classes/hook_http_filters에 등록되기 위해서는 service혹은 doFilter메소드를 포함하고 있어야 합니다. |
hook_httpservlet_classes/hook_http_filters옵션들은 변경시 재기동이 필요합니다. |
v2.0_08
사용자 추적 옵션 수정
trace_user_method=ip
ip, cookie, jsession, header,none
4가지중 하나를 선택할 수있습니다.
-
ip : 클라이언트 ip를 사용자로 구분하여 카운팅 합니다.
-
cookie: WHATAP 쿠키를 자동으로 생성하여 사용자를 카운팅 합니다.
-
header: http header 값을 조회하여 사용자를 카운팅합니다. trace_user_header_key 를 지정해 주어야 합니다.
-
jsession: 쿠키값 중에서 JSESSIONID값을 읽어 사용자를 카운팅합니다.
-
none : 사용자를 카운팅하지 않습니다.
"trace_user_method" 설정된 값은 whatap.log에 출력됩니다. |
주요 메소드 Exception 추적
트랜잭션 프로파일시 트랜잭션 중간에 Exception을 catch해버리면 Exception발생여부를 알 수없습니다. 즉 트랜잭션 정보가 정상 종료로 표시됩니다. 그것은 모든 메소드의 Exception을 추적할 수없기 때문입니다.
하지만 여러가지 이유로 주요메소드에서 발생하는 Exception에 대해서는 에러로 표시하고자할때 필요합 옵션이 추가 되었습니다.
hook_method_error_supers hook_method_error_interfaces hook_method_error_patterns
위 옵션에 설정된 클래스의 메소들에서 Exception이 발생하면 트랜잭션 에러로 처리됩니다.
에이전트 접속 정보 설정키 변경
에이전트가 서버에 정보를 전송하기 위해서는 license값이 등록되어있어야 합니다.
license=x49s223s812hc-x496iqddmlug9c-z4orgmapfi
키를 변경하였습니다. license -→ whatap.project.token
whatap.project.token=x49s223s812hc-x496iqddmlug9c-z4orgmapfi
license옵션 키도 동일하게 사용가능합니다. |
URL Prefix 기반 정규화
prefix를 등록하고 등록한 prefix로 시작하는 URL는 prefix 값으로 변경(정규화)하는 기능을 추가하였습니다.
trace_normalize_prefix=/a,/b
옵션은 운영중에도 실시간 반영됩니다.
Jedis 프로파일링
jedis드라이버를 사용하여 redis를 호출하는 경우 응답시간을 추적할 수있습니다.
weaving_reserved=jedis-3.2
jedis 2.x까지 적용할 수있습니다. |
jedis_basetime=100
기본으로 응답시간이 100ms이상인 경우에 프로파링됩니다. 모든 jedis호출을 프로파일링 하고 싶으면 jedis_basetime=0으로 설정합니다.
jedis_show_parameter=false
jedis호출중에서 파라미터 값을 같이 프로파일링할때 true로 설정합니다.
-
getSet
-
get/set
-
hget/hset
위의 명령들을 프로파일링 합니다.
만약 다른 명령을 프로파일링하고자 한다면 support@whatap.io로 문의바랍니다. |
Spring Kafka 트랜잭션 추적
Kafka Listener가 데이터를 받아 처리하는 로직을 추적하는 기능을 추가하였습니다.
weaving_reserved=spring-kafka-1.3, spring-kafka-2.4
Spring Kafka-1.1.x ~ 1.3.x 는 spring-kafka-1.3를 사용할 수 있고 Spring Kafka-2.0.x ~ 2.4.x 는 spring-kafka-2.4를 사용합니다. https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka 트랜잭션 이름은 "kafka:topic-name" 형태가 됩니다. |
Spring MongoDB 프로파일링
몽고DB 메소드 호출에 대한 응답시간을 추적할 수있습니다.
weaving_reserved=spring-mongodb-2.2
spring-mongodb-2.2는 Sping Data MongoDB 1.1.x~2.2.x까지 적용할 수 있습니다. https://mvnrepository.com/artifact/org.springframework.data/spring-data-mongodb |
mongodb_basetime=100
기본으로 응답시간이 100ms이상인 경우에 프로파링됩니다. 모든 jedis호출을 프로파일링 하고 싶으면 jedis_basetime=0으로 설정합니다.
mongo_show_parameter=false
jedis호출중에서 파라미터 값을 같이 프로파일링할때 true로 설정합니다.
-
getSet
-
get/set
-
hget/hset
위의 명령들을 프로파일링 합니다.
만약 다른 명령을 프로파일링하고자 한다면 support@whatap.io로 문의바랍니다. |
Disk 사용량 카운팅
리눅스 환경에서 디스크 사용량을 추적할 수 있습니다.
디스크는 여러개가 마운트되어있을 수있습니다. 따라서 마운트된 디스크를 지정하여 모니터링 할 수있습니다.
diskusage_enabled=false diskusage_interval=300000 diskusage_default_enabled=false
diskusage_default_enabled=true가 설정되면 diskusage_path 설정은 무시됩니다.
diskusage_interval 간격(ms)으로 디스크 사용량을 추적하여 데이터를 보냅니다.
diskusage_count=2 diskusage_0_id=root diskusage_0_path=/ diskusage_1_id=home diskusage_1_path=/home
Byte Code Instrumentation(BCI) 예외 옵션
자바에서 성능추적이 필요한 주요 클래스들은 기본으로 BCI를 통해 수행 내용을 추적하도록 구현되어있습니다.
하지만 간혼 추적이 부적절한 클래스들이 존재할 수있는데 무시하기 위한 옵션이 있습니다.
hook_ignore_classes=org.mariadb.jdbc.MariaDbResultSet
v2.0_07
mariaDB jdbc driver 2.4.x에서 SQL 바인드변수의 추적이 안되는 버그 수정
사용자 카운팅을 위해 JSESSIONID의 값을 사용할 수있습니다. 근데 JSESSIONID를 다른 키로 변경한경우 변경된 키를 사용할 수있도록 옵션이 추가 되었습니다. 기본값은 JSESSIONID입니다. trace_user_using_jsession_key=JSESSIONID
v2.0_04
hook_exception_handler에 등록된 메소드에서 Exception이 catch되는 경우에 biz_exceptions에 등록된 에러에 대한 예외 처리가 되지 않고 profile_exception_stack 옵션이 동작하지 않는 버그 수정
v2.0_00
에이전트 통합
이전버전(v1.9.7이하)에서 WhaTap에이전트는 java5~8을 위한 whatap.agent.tracer-1.x.x.jar 와 java9~java13을 위한 whatap.agent.java9-1.x.x.jar로 분리하여 제공되었었습니다. 그러나 v2.0이후부터는 java5~13 혹은 이후 java까지도 whatap.agent-2.x_xx.jar로 통합되어 제공됩니다.
Hybris connection pool 추적 기능추가
Hybris는 SAP에서 인수한 e-commerce 솔루션입니다. Hybris는 자체개발한 DB Connection Pool을 사용하고 있습니다. 이 풀의 갯수를 추적하는 기능이 추가 되었습니다.
hybris_pool_enabled=true (기본값:true)
JNDI 혹은 JDBC URL 별로 DB연결수 추적
카운터 수집은 DB연결 정보(JDBC URL/JNDI)별로 연결수를 추적하도록 수정되었습니다. 에이전트별 DB연결수는 동일합니다.
연결정보에 대한 상세 데이터를 별도 수집할 수있습니다. (TAG 데이터)
pool_detail_enabled=true
ECS CPU 사용량 추적
AWS ECS환경에서 자바 에이전트가 설치되면 자동으로 인지하여 ECS에서 제공하는 CPU정보를 조회합니다. 그리고 할당된 CPU Limit를 수집합니다.
Active Transaction 조회 기능 강화
액티브 트랜잭션 정보가 요청되었을때 보다 상세한 정보를 리턴합니다. domain, 진행중인 SQL, httpcall 정보등이 추가되었습니다.
Http Header Demp(Profile) 키 수정
Http Header Demp(Profile)시 기본 생략 키를 등록하였습니다.
profile_http_header_ignore_keys=cookie,accept,user-agent,referer
만약 key를 제거하려면 none을 설정합니다.
profile_http_header_ignore_keys=none
CPU 모니터링 모듈 정리
환경에 따라 여러가지 CPU사용량 수집을 위해 여러가지 모듈이 선택되어 사용될 수 있습니다.
-
JMS : JMX 사용
-
/proc : Linux /proc/stat 조회
-
sigar : 오픈소스 sigar 라이브러리
-
ECS API : AWS ECS api
-
KUBE : 와탭 쿠버 모니터링
-
Shell : Shell 프로그램
와탭의 자바에이전트는 CPU수집 모듈중에 환경에 따라 자동으로 선택됩니다.
if (쿠버 환경) {
<KUBE>
} else if (AWS ECS) {
<ECS>
} else if ( 설정 linux_proc_stat_enabled) {
if (리눅스) {
</proc/stat>
} else {
<JMX>
}
} else if (설정 shell_perf_enabled) {
<SHELL>
} else if (설정 sigar_enabled) {
<SIGAR>
} else {
<JMX>
}
linux_proc_stat_enabled=false shell_perf_enabled=false sigar_enabled= jdk8이하?true:false
Weaving 플러그인 관리 개선
1.9.x에서는 위빙 플러그인의 버전이이나 중복 설정 여부를 체크하지 않았습니다. 2.0부터는 플러그인 별로 컴포넌트 이름과 버전이 관리됩니다.
플러그인 이름과 버전
Manifest-Version: 1.0 Ant-Version: Apache Ant 1.10.5 Created-By: 11.0.2+9-LTS (Oracle Corporation) PlugIn: okhttp3 //플러그인 이름 Build: 001 //플러그인 빌드 버전 Agent-Version: 2.0
설치된 jar 파일에서 manifest내의 "PlugIn:" 값을 기준으로 최근 "Build"를 로딩합니다.
Reserved 플러그인
자주사용되는 위빙플러그인은 whatap.agent.jar 파일내에 임베디드되었습니다.
akka-2.5.jar axis-1.4.jar okhttp-2.7.jar okhttp3.jar play-2.7.jar reactor-rabbitmq-1.2.jar spring-rabbitmq-2.1.jar springboot-start.jar tomcat-boot.jar webflux-5.2.jar
임베디드된 다른 위빙 컴포넌트들은 weaving_reserved 옵션으로 설정할 수있습니다. ".jar"를 제외한 파일명을 설정합니다.
weaving_reserved=akka-2.5, okhttp3
Java Agent 1.9
v1.9.7
2020-02-10
최대 수집되는 active_stack 갯수의 기본값을 50으로 조정했습니다.
트랜잭션 통계 정보를 서버에 보낼때 스팩정보를 추가로 전송할 수있도록 프로토콜을 수정했습니다. 다만 수집서버가 2020-02-01 이후 버전이 사용되어야 함으로 사용여부가 옵션으로 지정되어있습니다. 기본값은 false입니다.
- 관련 옵션
stat_service1_enabled=false
기본 HttpService 클래스에 대한 hooking을 off 하기 위한 옵션이 추가되었습니다. 기본값은 true입니다.
- 관련 옵션
_hook_http_enabled = true
v1.9.6
2020-01-14
SQL파라미터 중에 setObject로 전달되는 String 파리미터를 구분하도록 수정했습니다.
진행중이 트랜잭션이 너무 오래 진행될때 추적 목록에서 제거할 수 있는 옵션이 추가되었습니다. 값이 0일때는 동작하지 않습니다.
tx_active_timeout=0
v1.9.5
2020-01-07
DBConnection Leak을 추적할때 소스 코드에서 stmt.getConnection().close() 형식으로 구현되면 오탐이 발행합니다. 이문제를 수정하기 위해 옵션이 추가되었습니다.
- 관련 옵션
trace_dbc_stmt_getcon_enabled=false
v1.9.4
2019-12-31
AWS ecs환경에서 CPU모니터링을 위한 옵션 추가되었습니다. java 실행옵션으로 설정합니다.
- 관련 옵션
-Dwhatap.ecs.enabled=true
리눅스에서는 sigar모듈을 사용하지 않고 자바 모듈에서 바로 자원정보를 읽는 옵션이 추가되었습니다. 기본값은 false입니다.
- 관련 옵션
linux_proc_stat_enabled=true
다량의 jar파일에서 클래스를 찾아주는 offline유틸리티가 추가되었습니다.
java -cp whatap.agent-1.9.4.jar whatap.agent.setup.ClassFinder
Connection Leak이 발생했을때 에러메세지에 txid정보가 추가 되었습니다.
Java Agent 1.8
v1.8.9
DBConnection Leak 추적시 Connection Close 표시 버그가 수정되었습니다.
profile_dbc_close=true |
트랜잭션의 CPU사용량을 추적하기 위해 사용되는 내부 API 가 에이전트 당 3000TPS이상의 환경에서 오버헤드가 있는 것으로 판단되어 옵션을 추가합니다.
trace_cpu_enabled=true |
액티브 트랜잭션 수가 300(기본값) 이 넘으면 자동으 Thread Dump를 생성하는 기능을 기본 false로 변경합니다.
thread_dump_enabled=false |
v1.8.8
2019-09-12
Socket에서 readtime out이 발생하는경우에 Exception을 추적하기 위한 기능을 추가합니다.
trace_socket_timeout_enabled=false

2019-09-04
Weaving 플러그인 로딩시 메소드의 access 정보를 orginal 메소드의 access로 맞춥니다.
v1.8.6
2019-08-20
v1.8.1
2019-06-25
JVM을 위한 상세 성능카운트
Java VM을 위한 상세한 성능카운트를 추가로 수집할 수있습니다.
perfx_java_enabled=true
whatap.conf에 perfx_java_enabled=true가 설정되면 다음과 같은 성능정보를 추가로 수집합니다.
- java_memory
-
heap & nonheap에 대한 메모리 사용량
- java_memory_pool
-
영역별 Heap메모리 사용량
- java_gc
-
Java Heap GarbageCollector 수행 건수와 시간
- java_os
-
Java 시스템 영역에서의 성능 지표들
OpenFileDescriptorCount, MaxFileDescriptorCount, ProcessCpuTime ,CommittedVirtualMemorySize, TotalSwapSpaceSize, FreeSwapSpaceSize , FreePhysicalMemorySize, TotalPhysicalMemorySize, SystemCpuLoad, ProcessCpuLoad, SystemLoadAverage, AvailableProcessors
perfx_java_enabled=true 상태에서 java_gc 수집만 off하고 싶다면 perf_java_gc_enabled=false 를 설정합니다. 마찬가지로 perfx_java_memory_enabled=false perfx_java_memory_pool_enabled=false perfx_java_os_enabled=false 등의 옵션을 사용 할 수있습니다. |
사용자 관심 JMX 성능 카운트
JVM내에서 임의의 JMX path를 지정하여 수집할 수 있습니다. 지정한 Mbean 객체의 Attribute가 성능 카운트 형태로 수집됩니다.
perfx_jmx_enabled=true
perfx_jmx_enabled=true가 설정되면 다음의 Mbean Object 들의 정보가 수집된다. 만약 특정 데이터를 off하려면 해당 옵션을 false로 설정합니다.
Category: tomcat_connector Option: perfx_tomcat_connector_enabled=true ObjectName Query: Catalina:type=Connector,*
Category: tomcat_datasource Option: perfx_tomcat_datasource_enabled=true ObjectName Query: Catalina:type=DataSource,*
Category: tomcat_threadpool Option: perfx_tomcat_threadpool_enabled=true ObjectName Query: Catalina:type=ThreadPool,*
Category: tomcat_executor Option: perfx_tomcat_executor_enabled=true ObjectName Query: Catalina:type=Executor,*
Category: java_nio_bufferpool Option: perfx_java_nio_bufferpool_enabled=true JMX Query: java.nio:type=BufferPool,*
Java Agent 1.7
v1.7.7
2019-06-11
사용자 정의 추가 성능 모니터링
JAVA,Tomcat에 관련한 추가 성능지표를 모니터링 할수있습니다.
Memory 상세 지표 수집, Jedis Connection Pool건수, Tomcat8에서 컨택스트별 성능지표들을 수집할 수있습니다.
perfx_java_memory_enabled = false perfx_jedis_enabled = false perfx_tomcat8_enabled = false
데이터 수집 주기는 각각 지정할 수있습니다. 기본은 모든 5000ms로 되어있습니다.
perfx_java_memory_interval = 5000 perfx_jedis_interval = 5000 perfx_tomcat8_interval = 5000
v1.7.5
2019-04-25
exception 발생시 스택을 프로파일에 보여줌
모든 Exception의 stack을 추적하면 운영시스템의 부담이 될수있습니다. 하지만 디버깅 목적이나 개발 시에는 스택정보를 프로파일에서 보여주는 것이 유용합니다.
profile_exception_stack=true
모든 트랜잭션의 mtid를 추적하고자 할때
log4j와 같은 로깅 시스템과 연계하기 위해서 모든 트랜잭션의 mtid를 추적할수있습니다.
mtrace_alltx_enabled=true
mtrace_rate=100으로 설정해도 비슷한 효과를 얻을 수있습니다.
mtrace_rate=100은 최초 외부호출이 발생할때 mtid를 생성하기 때문에 log와 연계할때는 부적절 할 수도 있습니다. |
mtrace_alltx_enabled=true하면 너무 많은 로그가 남을 수있습니다. 이때는 프로파일 로깅량을 줄일 필요가 있습니다.
mtrace_basetime=1000
profile_basetime은 mtid==0인 경우에만 적용됩니다. 그래서 모든트랜잭션에 mtid가 부여된 상황에서는 mtrace_basetime을 사용해서 프로파일 량을 줄일 수 있습니다.
v1.7.4
2019-04-03
쉘명령어을 이용한 CPU/MEM 모니터링
-Dshell_perf_enabled=true -Dshell_perf_command=iostat 3
유닉스나 혹은 메인 프레임등예외적인 환경인 경우 시스템 CPU사용량을 모니터링하기 위해 쉘을 사용할 수있습니다.
와탭은 shell_perf_enabled=true인 경우에는 shell_perf_command에 등록된 쉘명령을 백그라운드로 실행하여 stdout의 데이터를 수집합니다.
라인 파서를 등록해야 합니다.라인파서는 플러그인으로 등록합니다.
//println($line); String[] tok = tokenizer($line," "); float idl= cfloat(index(tok,5)); cpu(100f-idl);
$line을 파싱하여 값을 등록합니다. 이때 값을 등록하는 api는 다음과 같습니다.
cpu(float) cpu_sys(float) cpu_usr(float) cpu_proc(float) mem(float) swap(float) disk(float)
v1.7.2
2019-02-24
v1.7.0
2019-01-10
Multi-tier Transaction Trace(MTRACE)
mtrace_enabled=false
mtrace_enabled=false 옵션을 추가하였습니다. 이값을 true 설정하면 멀티티어에 대한 트랜잭션 연결 추적을 시행합니다.
meter_enabled
sql_dbc_meter_enabled=false httpc_host_meter_enabled=false tx_caller_meter_enabled=false
호출자 기반의 통계, httpc 관한 통계,sql에 대한 통계를 5초단위로 실시간으로 수집합니다. 그중에서 tx_caller_meter_enabled는 mtrace_enabled=true일때만 동작합니다.
mtrace_rate
mtrace_rate=10
트랜잭션의 프로파일을 연결분석하기 위해서 mtid를 주고 받습니다. mtrace_rate=10이면 트랜잭션중에서 10%를 샘플링하여 caller의 txid와 mtid를 "x-wtap-mst"로 전송합니다.
받는 쪽에서는 별다른 옵션이 없습니다.
_trace_mtrace_poid_key=x-wtap-po _trace_mtrace_caller_key=x-wtap-mst _trace_mtrace_spec_key=x-wtap-sp _trace_mtrace_callee_key=x-wtap-tx
Java Agent 1.6
v1.6.2
2018-11-23
Non Http Transaction에 대한 이름 옵션
service_name_mode=
full,class,method,string,arg 5가지 옵션을 지정할 수있습니다.
-
full : Full Class이름 사용
-
class : Class 이름 서비스 명으로 사용
-
method : Method이름을 서비스명으로 사용
-
string : 문자열중에서 첫번째 파라미터를 서비스 명으로 사용
-
arg : 파라미터중에서 service_name_index옵션에 지정한 인덱스이 파라미터를 서비스 명으로
v1.6.1
v1.6.0
SAP3 모니터링 기능 추가
에이전트 옵션 설정 필요 (재기동 필요) .whatap.conf
hook_httpc_sap3_enabled=true
sapjco3-3.0.14.jar를 사용하여 테스트 했습니다.
addin monitor 설정 방법 추가
addin module jar 파일들을 복사합니다.
${WHATAP_AGENT}/addin/.
다음은 addin monitor클래스를 설정하는 방법입니다. 먼저 갯수를 지정합니다. 그리고 갯수 범위(addin_monitor_num)내에서 addin_monitor_x= 형태로 설정합니다.
addin_monitor_num = 10 addin_monitor_0=addin.java7.MemoryMonitor addin_monitor_1=addin.java7.MemoryPoolMonitor addin_monitor_2=addin.java7.MemoryUsageMonitor addin_monitor_3=addin.java7.ThreadingMonitor
값이 없으면 무시됩니다. 동일한 클래스가 중복 설정되면 하나는 무시됩니다. |
Java Agent 1.3
v1.3.1
Sigar disable 처리 가능하게
Sigar는 와탭에서 서버의 물리자원 사용량을 수집하기 위해사용한다. 그런데 siager_enabled=false를 설정하면 JMX를 통해 시스템의 자원 사용량을 추적한다.
sigar_enabled=true
주의 할점은 JMX를 통해서 자원 사용량을 추적할때 메모리 사용량이 리눅스의 경우 부정확한 문제가 있다. 리눅스는 OS의 메모리가 여유가 있으면 디스크 버퍼케쉬를 위해 임의로 메모리를 사용한다. 이 공간한 메모리 사용률에서 제외해야하는데 JMX의 그것을 처리할 수있는 API가 제공되지 않는다. |
Java Agent 1.2
v1.2.8
Custom Leak 추적
custom leak 추적이란 트랜잭션이 수행되는 도중에 open과 close메소드의 짝이 맞는지를 추적하는 기능입니다.
hook_custom_open_patterns="" hook_custom_close_patterns="" profile_custom_leak_enabled=true
profile_custom_leak_enabled=true
옵션에 설정한 메소드들이 프로파일에서 호출내역을 보거나 제거할 수 있다.기본값은 true이다.
사용예
hook_custom_open_patterns=leaktest.T.open hook_custom_close_patterns=leaktest.T.rollback,leaktest.T.commit
T라는 클래스는 open과 commit/rollback 3개의 메소드가 있다. 이때 open이 호출되면 반드시 commit혹은 rollback이 호출되어야 하며 연속으로 2번이상의 open이나 commit이후 rollback이 호출되는 것은 무시된다.
T.open -> T.open -> T.commit : ok T.open ->T.commit -> T.open : leak
v1.2.5
v1.2.2
DB Pool 카운터 추적
와탭은 DB Connection Pool에서 Active 카운트와 Idle카운트를 추적하고 상태정보를 조회하는 기능을 제공한다. 데이터를 조회하는 방식에는 크게는 JMX와 BCI 두가지 방식을 가지고 있다. JMX 방식은 기동중에 옵션 변경만으로 적용된다. 하지만 BCI방식은 재기동시 옵션이 변경되어있어야 한다.
- JMX방식에는
tomcat_ds_enabled=false weblogic_ds_enabled=false
- BCI방식에는
hikari_pool_enabled=false dbcp_pool_enabled=false weblogic_pool_enabled=false
톰켓과 웹로직은 JMX를 통해 데이터를 조회할수 있지만 버전에 따라서 동작하지 않을 수 있다. 현재 테스트 된 버전은 Tomcat7 버전이다. 웹로직은 weblogic10에서 테스트 되었다. DBCP, Hikari, Weblogic10에서는 컨넥션 풀 클래스를 직접 BCI로 접근하여 데이터를 조회할 수있다.
DB Pool 추적 커스터마이징
- 1.에이전트 옵션에
-
custom_pool_classes=<id>@<pool class name>
custom_pool_classes=dbcp@org.apache.tomcat.dbcp.dbcp.BasicDataSource
만약 여러가지 풀을 사용하고 있으면 콤마(,)로 구분하여 여러개를 지정할 수있다.
- 2.플러그인 추가
-
${WHATAP_HOME}/plugin/CustomPool.x
$result.active(method($pool,"getNumActive")); $result.idle(method($pool,”getNumIdle"));
전달된 $pool에서 리플렉션으로 조회를 할 것이다. $pool의 실제 클래스는 custom_pool_classes에 설정했던 객체가 전달된다. 만약 2개이상이 설정되어있다면 $id 를 참조하여 구분할 수있다.
실시간 혹은 일자별 차트에서 데이터 확인 가능
v1.2.1
v1.2.0
CPU 과점 쓰레드 덤프
WAS 프로세스의 CPU가 높을때 어떤 쓰레드가 CPU를 많이 사용하는지 찾기 위해 쓰레드 덤프를 연속적으로 수행하는 기능입니다.
debug_cpu_enabled = false; debug_cpu_trigger = 0; debug_cpu_interval = 10000; debug_cpu_dump_count=10;
-
debug_cpu_enabled=true 가 되면 본 기능이 활성화됩니다.
-
debug_cpu_trigger값이 변경되면 그때부터 CPU를 가장 많이 사용하는 쓰레드5개를 ${WHATAP_HOME}/whatap-cpu-(pcode)-(oname)-{time]-{num].wdmp 파일에 기록합니다.
-
덤프 간격은 debug_cpu_interval에 지정됩니다.
-
debug_cpu_dump_count(10) 횟수만큼 덤부를 수행합니다.
덤프내용을 백그라운드 쓰레드를 포함하여 덤프 간격동안 CPU 를 가장 많이 사용하고 있는 쓰레드이고 만약 개별 쓰레드가 사용자 요청(URL)를 처리 중이라면 URL도 같이 로깅한다.
자동 쓰레드 덤프
WAS의 장애가 발생하여 액티브트랜잭션이 증가하면 자동으로 전체 쓰레드를 덤프하여 향후 문제 분석에 활용합니다.
thread_dump_enabled = true thread_dump_interval = DateUtil.MILLIS_PER_HOUR thread_dump_cpu = -1 thread_dump_actx = 300
thread_dump_actx(300)이상의 액티브 서비스갯수가 쌓이거나 thread_dump_cpu(-1:disabled)이상의 CPU사용이 발생할때 JVM내의 모든 쓰레드와 그 스택을 덤프한다. 각 쓰레드가 수행하는 URL정보도 같이 덤프라한다. (값이 -1일때는 동작하지 않는다) 한번 덤프가 발생하면 thread_dimp_interval 이상 시간이 경과되어야 다시 동작합니다.
특정 url 쓰로틀링(Request Throttling)
웹 요청이 폭주할경우 초과 요청을 다른 페이지로 넘길 수있다. 쓰로틀링에서 특정 타겟팅 페이지만 제어하는 기능이 추가되었다.
throttle_enabled = false; throttle_limit = 10000; throttle_target_urls = throttle_passing_url = throttle_passing_url_prefix = throttle_rejected_message = too many request!! throttle_rejected_forward = <static url> throttle_blocking_url = throttle_blocking_ip = throttle_blocked_message = request blocked!! throttle_blocked_forward_ok = true
throttle_enabled=true가 설정되면 쓰로틀링 기능이 활성화된다. 현재 요청된 URL이 블럭킹 대상이면 처리가 거부된다. 그다음은 액티브 트랜잭션 갯수가 throttle_limit에 도달했는지를 확인하고 limit를 초과하면 url을 검사한하다. 만약 throttle_target_urls(이번에 추가됨)이 등록되있으면 해당 URL에 등록된경우는 서비스를 거부하고 포함되지 않았다면 정상 처리한다. throttle_target_urls에는 full url path로 설정한다. 여러개를 설정할때는 ,로 구분한다.
사용자 기본 측정방식 변경
와탭은 웹시스템의 사용자를 측정하기 위해 쿠키를 사용합니다. 그런데 모바일이나 일부 장비에서 쿠키를 원할하게 처리하지 못하는 현상이 예상되어 기본을 ip를 사용하여 사용자를 측정하도록 변경하였습니다.
trace_user_using_ip = true
만약 이전처럼 쿠키를 기반으로 사용자를 측정하고자 한다면 위 옵션을 false로 변경해 주어야 한다.
DB 연결 카운팅
tomcat_ds_enabled = false weblogic_ds_enabled = false hikari_pool_enabled = false dbcp_pool_enabled = false weblogic_pool_enabled = false
xx_ds_enabled와 xx_pool_enabled 두가지 옵션이 있다. ds는 DaraSource에서 데이터를 JMX로 추출하고 _pool_은 BCI 를 통해서 데이터를 추출한다.
따라서 운영중에 xx_ds_enabled=true를 적용하면 바로 적용되지만 xx_pool_enabled는 재기동이 필요하다.
톰켓에서 DBCP를 사용하는 시스템의 경우에는 tomcat_db_enbled혹은 dbcp_pool_enabled를 모두 사용할 수있다. 하지만 SpringBoot에서 DBCP를 사용하는 경우에는 dbcp_pool_enabled를 사용해야 한다.
웹로직의 경웨는 Standalone으로 설치된 경우에는 weblogic_ds_enabled와 weblogic_pool_enabled를 모두 사용할 수 있으나 도메인 구성이되어있는 경우에는 weblogic_pool_enabled를 적용해야 데이터가 추출된다.
메소드 호출 건수 추적
특정 메소드의 호출건수를 추적하고 싶을 때 사용한다. .whatap.conf
hook_method_stat_supers hook_method_stat_interfaces hook_method_stat_patterns
서버 > 더보기 > Method Perfor Stat에서 확인 할 수 있습니다.
에이전트 메모리에서 카운팅을 하고 메뉴에서 현재 통계 정보를 조회할수 있다.
액티브 스택 최적화
액티브 스택을 수집함에 있어 에이전트 폭주시 영향을 최소화 하기 위해 최적화 옵션이 적용되어있다.
- 최대 동시 액티브 스택 지정
-
간혹 시스템에 따라 액티브 트랜잭션이 수천개가 되는 경우들이 있다. 이것은 이미 장애 상황이기 때문에 액티브 스택 수집을 제한하고 있다.
active_stack_count = 100
- 덤프 interval
-
TPS가 높은 시스템에서 (인스턴스당 약400정도)에서는 모니터링 오버헤드를 신경써야 한다. 액티스 스택의 수집주기를 늘려줄 필요가 있다.
active_stack_second=10 (단위 초)
약 60정도 적용하면 무난 할 것이다.
- 스택 depth
-
액티브 스택의 최대 depth이다. 기본은 최대 스택별 50라인을 수집한다.
trace_active_callstack_depth = 50
PHP Agent Release Notes
PHP Agent 2.1.2
2021-03-25
업데이트
php 데몬 프로세스 지원
php 데몬 프로세스에 대한 기능을 지원합니다.
종료되지 않는 데몬 프로세스 내부에서 반복되는 구간의 시작, 종료 지점을 지정하여 웹 트랜잭션 처럼 프로파일 정보를 수집합니다.
Whatap라이브러리상의 함수를 사용합니다.
-
트랜잭션을 시작합니다. 파라메터로 트랜잭션의 URL을 대체할 이름을 지정합니다.
Whatap::whatap_begin_tx("daemon_service");
-
트랜잭션을 종료합니다.
Whatap::whatap_end_tx();
<?php
$pinfo = pathinfo(__FILE__);
$cur_path = $pinfo['dirname'];
// Whatap 라이브러리를 로드합니다.
include_once($cur_path.'/Whatap.php');
error_log('Start Daemon');
while(true){
// start daemon transaction(service_name);
Whatap::whatap_begin_tx("daemon_service");
// 내부 로직
...
// end daemon transaction
Whatap::whatap_end_tx();
sleep(5);
}
?>


whatap.trace_daemon_enabled
-
Default : False
Type : Boolean
True : php 데몬 프로세스를 제외합니다. php 데몬 프로세스는 트랜잭션이 시작되는 것은 확인되지만 종료되지 않기때문에 무시합니다. 무시하지 않을 경우 5분후에 수집을 종료합니다. 5분 소요된 트랜잭션으로 표기되며, 프로파일 내용에 "Lost Connection" 이 출력됩니다.
+
whatap.trace_daemon_urls
-
Default : #
#Type : String트랜잭션 처리에서 제외할 php 데몬 프로세스의 url을 설정합니다. 여러개 입력은 콤마(,)로 구분합니다.
PHP Agent 2.1.1
2021-03-17
업데이트
whatap-php 서비스 데몬
초당 트랜잭션 수(TPS)가 높아지면, 처리할 데이터가 늘어남에 따라서 whatap-php 서비스의 CPU 부하도 같이 증가합니다. CPU 부하를 좀 더 줄일 수 있도록 개선했습니다.
트랜잭션 URL 정규화
트랜잭션 URL을 정규화할 경우 원래 URL을 확인하기 어려웠던 부분을 개선합니다. 프로파일 내부에 원래 URL 정보를 출력합니다.
아래 설정으로 트랜잭션 URL을 정규화 할 수 있습니다. path parameter변경과 무관하게 동일한 트랜잭션으로 통합할 수 있습니다.
// 설정 , whatap.ini whatap.trace_normalize_enabled=true whatap.trace_normalize_urls=/faq/site-usage/category/{category}/{id}, /aaa/bbb/{id}
// 원래 URL /faq/site-usage/category/10/1 // 변경 URL /faq/site-usage/category/{category}/{id}

whatap.profile_basetime 설정은 초기값이 500ms 로 설정되어 있습니다. 500ms 이하의 응답시간이 소요되는 트랜잭션의 경우 정규화된 트랜잭션 URL 기준으로 5분간 한 번만 프로파일을 수집합니다. |
PHP Agent 2.1.0
2021-03-10
업데이트
Tibero 지원
Tibero 연결을 지원합니다. odbc 모듈을 사용한 프로파일정보를 수집합니다.
아래 함수를 대상으로 TIbero 연동 정보를 수집합니다.
-
odbc_connect
-
odbc_pconnect
-
odbc_exec
-
odbc_prepare
-
odbc_execute
-
odbc_error
-
odbc_errormsg
-
odbc_close
odbc 라이브러리 오류 내용 수집 설정입니다.
whatap.profile_odbc_return_enabled
-
Default : True
Type : BooleanTrue : 라이브러리 함수의 결과가 False 일때 오류로 표기하는 기능을 활성화.
예) whatap.profile_odbc_return_enabled=true
whatap.profile_odbc_error_info_enabled
-
Default : True
Type : BooleanTrue : 라이브러리 함수의 결과값이 False 일때 에러 메세지 정보 수집하는 기능을 활성화
위 return_enabled 설정이 false 인 경우는 적용되지 않습니다.예) whatap.profile_odbc_error_info_enabled=true
whatap.profile_odbc_error_ignore_empty
-
Default : True
Type : BooleanFalse :오류 코드 또는 오류 메세시 내용이 없을 때 정상 결과로 표기.
위 return_enabled 설정이 false 인 경우는 적용되지 않습니다.예) whatap.profile_odbc_error_ignore_empty=true
PHP Agent 2.0.0
2021-02-17
업데이트
Alpine linux 지원
Alipine linux 를 지원합니다.
Dockerfile
whatap-php.targ.gz 을 /usr/whatap/php 디렉토리에 압축을 해제합니다. install.sh 스크립트를 통해서 설치합니다.(사용자 가이드에서 상세하게 확인가능합니다.)
/usr/whatap/php/install.sh -l [프로젝트 라이센스] -s [와탭 수집서버 주소] -e [php cli 경로 및 명령어] -p [Apache 또는 php-fpm 프로세스 이름] /usr/whatap/php/install.sh -l x260g0d40t6u7-xxxxx-aaaa -s 192.168.1.0/192.168.1.1 -e /usr/bin/php -p httpd
FROM alpine
RUN apk update && apk upgrade
RUN apk add php7 php7-fpm php7-opcache
RUN apk add php7-gd php7-mysqli php7-zlib php7-curl
RUN apk add php7-pdo php7-pdo_mysql
RUN apk add php7-pgsql
RUN apk add apache2 php7-apache2
# Install WhaTap PHP monitoring
RUN wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/x86_64/whatap-php.tar.gz
RUN tar -xvzf whatap-php.tar.gz -C /
RUN /usr/whatap/php/install.sh -l x260g0d40t6u7-xxxxx-aaaa -s 192.168.1.0/192.168.1.1 -e /usr/bin/php -p httpd
PHP Agent 0.8.2
2020-10-14
버그
cURL multi 프로파일링
cURL multi 프로파일링은 curl_multi_exec, curl_multi_select 함수를 시작으로 curl_multi_close 함수가 호출되는 시점까지를 경과시간으로 수집하고 있습니다.
기존에 curl_multi_remove_handle 함수를 curl_multi_close 함수로 간주한 부분에서 프로파일링이 중복 수집되는 오류를 수정했습니다.
curl multi 작업 완료 후 바로 curl_multi_close 가 호출되지 않으면 경과시간이 오차가 발생하거나, 그 사이 다른 작업 시간(sql 실행 등)이 추가 될 수 있습니다. |
업데이트
Apdex
Apdex (Appliccation Performance Index)
Apdex는 개방형표준을 따르는 애플리케이션 성능지표 입니다.
Apdex는 응답시간에 기반 하며 전체 요청중 만족과 허용 건 비율로 수치화합니다.
대시보드에 Apdex 그래프가 추가되었습니다.
Apdex는 사용자 만족도에 대한 지표로 활용할 수 있으며, 0 ~ 1 사이의 값을 갖습니다.
(만족 횟수 + (허용 횟수 * 0.5)) / 전체 요청 수
만족 (Satisfied, S) |
업무처리에 전혀 문제가 없음 ≤ 1.2초 (만족 S 기본값) |
허용 (Tolerating, T) |
사용자가 지연을 느끼나 업무처리는 가능함 ≤ 4.8초 (만족 S * 4) |
불만 (Frustrated, F) |
업무처리가 불가능함 > 4.8초 (허용 T 초과 및 오류) |
만족 S 기본값은 에이전트 설정 메뉴에서 변경 할 수 있습니다
whatap.apdex_time
-
Default : 1200
Type : millisecond

cURL 및 DB 라이브러리 오류 내용 수집 추가
cURL, DB 라이브러리 함수 결과값이 False 인 경우 오류로 간주하고, 오류 내용을 추가로 수집합니다.
(PhpRedis의 경우 오류메세지가 없으면 정상으로 표기합니다.)
-
DB 라이브러리의 오류 타입은 기존의 DBConnectionReturnFalse, SqlReturnFalse
앞뒤로 라이브러리 이름과 오류 번호를 추가했습니다.[DB 라이브러리 이름]_DBConnectionReturnFalse([에러번호])
예) CUBRID_DBConnectionReturnFalse(-20016) -
cURL 라이브러리의 오류 타입은 HttpConnectionReturnFalse
뒤에 오류 번호를 추가했습니다.호출 URL의 http 결과 코드가 400 이상인 경우 오류타입을 추가했습니다.
HttpConnectionServerError([결과코드])
예) HttpConnectionServerError(500)
설정을 통해서 기능을 활성화 비활성화 할 수 있습니다.
라이브러리 이름
-
curl, mysql, mysqli, pdo, oci8(oracle), pgsql, mssql, sqlsrv, redis, cubrid
whatap.profile_[라이브러리 이름]_return_enabled
-
Default : True
Type : BooleanTrue : 라이브러리 함수의 결과가 False 일때 오류로 표기하는 기능을 활성화.
예) whatap.profile_redis_return_enabled=true
whatap.profile_[라이브러리 이름]_error_info_enabled
-
Default : True
Type : BooleanTrue : 라이브러리 함수의 결과값이 False 일때 에러 메세지 정보 수집하는 기능을 활성화
위 return_enabled 설정이 false 인 경우는 적용되지 않습니다.예) whatap.profile_redis_error_info_enabled=true
whatap.profile_[라이브러리 이름]_error_ignore_empty
-
Default : True
Type : BooleanFalse :오류 코드 또는 오류 메세시 내용이 없을 때 정상 결과로 표기.
위 return_enabled 설정이 false 인 경우는 적용되지 않습니다.예) whatap.profile_redis_error_ignore_empty=false
PhpRedis 라이브러리는 기본값이 False 입니다. 오류메세지가 없는 경우 정상으로 표기합니다.


멀티 트랜잭션 추적
whatap.mtrace_enable 설정을 활성화(true)하면 멀티 트랜잭션 추적이 가능하게 수정되었습니다.
(기존에는 php 소스를 변경해야 가능했습니다.)
curl_init이 정상적으로 호출 되면 와탭 헤더를 자동으로 추가합니다.
whatap.mtrace_enabled
-
Default : False
Type : Boolean
트랜잰션 연계 추적 기능(MTID)을 사용 여부를 설정합니다. MTID 를 추적하면 등록된 모든 애플리케이션간의 호출을 확인 할 수 있습니다. whatap.mtrace_rate
-
Default : 10
Type : Int최초 트랜잭션이 발생할 때 발급받는 MTID(Multi Transaction ID)의 발급비율을 설정하는 옵션입니다.

클라이언트 아이피
클라이언트 아이피 수집 옵션을 추가했습니다.
-
HTTP Headr 에 x_forwarded_for 키가 존재할 경우 해당 값으로 클라이언트 아이피를 설정합니다.
-
그 외에는 기본 Remote IP로 클라이언트 아이피를 설정합니다.
x_forwarded_for 키가 있어도 Remote IP값으로 설정할 수 있도록 옵션을 추가했습니다.
whatap.trace_http_client_ip_header_key_enabled
-
Default : True
Type : BooleanFalse 로 설정하면 HTTP Header 는 무시하고, Remote IP 값으로 클라이언트 아이피를 설정합니다.
PHP Agent 0.8.0
2020-07-24
업데이트
Multi DB Connection 지원
기존에 SQL 구문이 적용되는 DB Connection 정보는 마지막 연결 DB Connection 정보로 설정되었습니다.
동시에 여러개의 DB Connection 을 유지하고 교차로 사용할 경우에도 적절한 DB Connection 정보를 설정하도록 수정하였습니다.
whatap.profile_db_connection_map_size
Default : 20
Type : Int
동시에 연결이 유지되는 DB Connection 정보를 최대로 저장할 수 있는 크기 입니다.
초과하는 DB Connection 연결 시 오래된 정보부터 삭제 됩니다.

PHP Agent 0.7.1
2020-05-27
업데이트
세션 쿠키
사용자를 측정하는 쿠키의 키값을 임의로 설정할 수 있도록 추가했습니다.
PHP 내부의 session.name 값을 지정하여 사용자를 식별할 수 있습니다.
기본 "PHPSESSID"를 쿠키의 키 이름으로 사용하지 않고, 다른 이름으로 사용할 때 설정합니다.
콤마를 구분자로 여러개의 값을 설정할 수 있습니다.
- whatap.trace_user_cookie_keys
-
Default : "PHPSESSID,ci_session,laravel_session"
Type : String
Apache 및 PHP-FPM의 재시작 후 적용됩니다. |
PHP Agent 0.6.0
2020-02-08
업데이트
공유메모리
PHP extension(whatap.so) 와 whatap-php service 간에 공유메모리를 이용한 IPC 기능을 추가했습니다.
shm_key의 값으로 설정된 키로 생성합니다. 이미 키가 사용되고 있다면 다른 키를 설정할 수 있습니다.
whatap-php service에서 공유메모리 생성 및 삭제를 관리합니다. PHP extension 에서는 조회기능만 수행합니다.
- whatap.shm_enabled
-
Default : true
Type : Boolean
공유메모리 사용 여부를 설정합니다.
Apache 또는 PHP-FPM의 재시작 후 적용됩니다. |
- whatap.shm_key
-
Default : 6600
Type : Long
공유메모리를 생성할 때 필요한 키 정보입니다.
Apache 또는 PHP-FPM의 재시작 그리고 whatap-php 서비스도 재시작해야 적용됩니다. |
공유메모리 확인 및 삭제
ipcs 명령어를 통해 공유메모리를 확인할 수 있습니다.
# ipcs ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x000019c8 131074 root 666 80 0 ------ Semaphore Arrays -------- key semid owner perms nsems 0x000019c8 425984 root 666 1 ------ Message Queues -------- key msqid owner perms used-bytes messages
ipcrm 명령어를 통해 공유메모리를 삭제할 수 있습니다.
# -m : remove shared memory by shmid # ipcrm -m 131074 # -s : remove semaphore by semid # ipcrm -s 425984
액티브 스테이터스
공유메모리를 통해 진행중인 요청의 현재 상태를 5초 간격으로 수집합니다.
대시보드 화면에 액티브 스테이터스 그래프가 표기됩니다. 상태는 일반 함수, SQL, DB connection, 외부 HTTP 연결, 소켓 연결이 있으며 각 상태별로 진행중인 요청 개수를 표시합니다.
Apache 또는 PHP-FPM가 재시작되면 진행중인 프로세스가 처리 중에 종료되면, 정상적인 액티브 스테이터스 완료 처리가 되지 않아 오차가 발생할 수 있습니다. 액티브 트랜잭션 수와 많은 차이가 발생하는 경우, 설정에서 whatap.active_stat_enabled를 false로 설정한 후, 대시보드에서 0건으로 초기화 되면 다시 true로 설정합니다. |

동적 설정 기능
기존에 사이트 에이전트 설정 메뉴에서 설정을 추가 또는 변경하여도 Apache 또는 PHP-FPM을 재시작해야만 적용되는 설정을 공유메모리를 통해서 재시작 없이 적용가능합니다.
옵션 | 설명 |
---|---|
whatap.ext.error_enabled |
PHP 확장 모듈(PHP Extension module) 에서 오류(Error) 정보를 수집하는 기능을 활성화 합니다. |
whatap.ext.exception_enabled |
PHP 확장 모듈(PHP Extension module) 에서 예외 처리(Exception) 정보를 수집하는 기능을 활성화 합니다. |
whatap.trace_user_enabled |
실시간 사용자 집계 여부를 지정합니다. 이 값을 활성화 하는 경우 아이피 또는 PHP 기본 쿠키(PHPSESSID) 및 프레임워크 쿠키(ci_session, Laravel_session)를 기준으로 사용자를 추적합니다. |
whatap.trace_user_using_ip |
실시간 사용자의 구분을 IP로 하고자 하는 경우 설정합니다. 이 데이터는 Real Time User에서 확인 가능합니다. |
whatap.trace_user_set_cookie |
사용자의 구분을 하기 위해 쿠키에 “WHATAP” 키 이름으로 사용자 구분 값을 설정한다. trace_user_using_ip 설정 되는 경우 반영되지 않습니다. |
whatap.profile_method_enabled |
실행시간이 1초(whatap.profile_method_time)를 초과하는 사용자 함수의 정보를 트랜잭션 상세 정보에서 확인 할 수 있습니다. |
whatap.profile_method_stack_enabled |
사용자 함수의 스택정보를 트랜잭션 상세 정보에서 확인할 수 있습니다. |
whatap.profile_internal_method_enabled |
PHP 내부 함수의 추적 여부를 설정합니다. 실행시간의 기준을 설정합니다. 설정한 시간을 초과하여 실행되는 경우만 정보를 수집합니다. |
whatap.profile_internal_method_param_enabled |
PHP 내부함수에 전달되는 인수의 정보를 같이 출력합니다. 숫자형, 문자형만 값이 출력됩니다. Default: false (true,false) |
whatap.profile_http_header_enabled |
프로파일 내역에 http 헤더 정보를 기록하고자 할 때 사용합니다. |
whatap.profile_http_parameter_enabled |
프로파일 내역에 http 파라미터 정보를 기록하고자 할 때 사용합니다. 파라미터는 별도 보안키를 입력해야 조회 할 수 있습니다. |
whatap.whatap.profile_compile_file_enabled |
compile_file, compile_string 함수의 추적 여부를 설정합니다. |
트랜잭션 리퍼러
통계로 수집되는 referer의 형식을 지정합니다.
도메인 형식으로 지정하면 트랜잭션 리퍼러의 도메인으로 통합된 건수를 확인할 수 있습니다.
- whatap.stat_referer_format
-
Default : 0
Type : Int
값 | 설명 |
---|---|
0 |
전체 (도메인 + 경로 + 쿼리 파라메터) |
1 |
도메인 (http://www.aa.com) |
2 |
도메인 및 경로(http://www.aa.com/aa.php) |
3 |
경로 (/aa.php) |
PHP Agent 0.4.12
2019-11-12
버그
트래픽이 급격히 증가할 경우 Udp 데이터 처리에 부하가 발생하는 부분 수정하였습니다.
Golang Channel은 버퍼가 가득찰 경우 병목현상이 발생할 수 있습니다. Queue를 사용하여 우선 순위별로 처리하고, 버퍼를 초과할 경우 별도 처리합니다.
에이전트 성능을 설정할 수 있는 옵션을 추가합니다.
에이전트 성능 옵션은 설정 후에 whatap-php 서비스를 반드시 재시작해야 합니다. 에이전트 성능을 확대할 경우 Cpu, Memory 사용율이 증가할 수 있습니다. |
- whatap.tx_max_count
-
Default : 5000
Type : Int
트랜잭션을 최대 저장하는 개수 입니다. 동시에 처리되는 트랜잭션이 많을 경우 해당 크기를 더 늘려줍니다. - whatap.tx_default_capacity
-
Default : 101
Type : Int
트랜잭션을 저장하는 버퍼의 시작 크기 입니다. - whatap.tx_load_factor
-
Default : "0.75"
Type : String(Float)
트랜잭션을 저장하는 버퍼의 크기를 점차적으로 증가시키기 위한 기준입니다. 101개 에서 75%이상 저장되면 버퍼의 크기를 두배로 증가시킵니다. - whatap.queue_log_enabled
-
Default : false
Type : Boolean
queue 관련 로그를 출력합니다. - whatap.queue_tcp_enabled
-
Default : true
Type : Boolean
Tcp 데이터 송신 처리에 사용하는 Channel을 대신해서 별도의 Queue를 사용합니다.(데이터 우선 순위 Queue를 사용합니다.) - whatap.queue_tcp_sender_thread_count
-
Default : 2
Type : Int
Tcp 데이터 송신을 처리하는 쓰레드의 개수를 지정합니다. 개수를 늘리면 데이터 송신을 좀더 빠르게 처리 할 수 있습니다. - whatap.net_send_buffer_size
-
Default : 1024
Type : Int
Tcp 데이터 처리를 위한 Channel 버퍼를 설정합니다. - whatap.net_send_queue1_size
-
Default : 256
Type : Int
Tcp 데이터 처리를 위한 Queue 버퍼를 설정합니다. 우선순위가 높은 데이터를 위한 Queue 입니다. - whatap.net_send_queue2_size
-
Default : 512
Type : Int
Tcp 데이터 처리를 위한 Queue 버퍼를 설정합니다. 프로파일 데이터를 위한 Queue 입니다. - whatap.queue_udp_enabled
-
Default : false
Type : Boolean
Udp 데이터 수신 처리에 Channel을 대신해서 별도의 Queue를 사용합니다. - whatap.queue_udp_size
-
Default : 2048
Type : Int
Udp 데이터 수신 버퍼를 설정합니다. Channel, Queue 버퍼를 설정합니다. - whatap.queue_udp_read_thread_count
-
Default : 3
Type : Int
Udp 데이터 수신을 처리하는 쓰레드의 개수를 지정합니다. 개수를 늘리면 UDP 버퍼에서 좀 더 빠르게 데이터를 읽어드릴 수 있습니다. - whatap.queue_udp_overflowed_size
-
Default : 4096
Type : Int
Udp 데이터 수신에 Queue를 사용하는 경우, overflowed Queue 버퍼 크기를 설정합니다. - whatap.queue_udp_process_thread_count
-
Default : 1
Type : Int
Udp 데이터를 처리하는 쓰레드의 개수를 지정합니다. 개수를 늘리면 UDP에서 읽은 데이터를 좀 더 빠르게 처리할 수 있습니다. - whatap.queue_profile_enabled
-
Default : false
Type : Boolean
Profile 정보 처리에 Channel 을 대신해서 별도의 Queue 를 사용합니다. - whatap.queue_profile_size
-
Default : 512
Type : Int
Profile 정보 처리를 위한 버퍼를 설정합니다. - whatap.queue_profile_process_thread_count
-
Default : 1
Type : Int
Profile 정보를 처리하는 쓰레드의 개수를 지정합니다. 개수를 늘리면 좀 더 빠르게 처리할 수 있습니다. - whatap.queue_text_enabled
-
Default : false
Type : Boolean
Text 데이터 처리를 위해 Channel 대신에 Queue 를 사용합니다. - whatap.queue_text_size
-
Default : 512
Type : Int
Text 데이터 처리를 위한 버퍼를 설정합니다.
PHP Agent 0.4.9
2019-09-05
업데이트
PHP 내부 함수 프로파일링 추가
PHP 내부 함수를 추적합니다. 함수 실행시간이 지정시간 이상으로 걸리면 수집합니다
; PHP 내부 함수의 추적 여부를 설정합니다. Default: false (true,false)
whatap.profile_internal_method_enabled=true
; 실행시간의 기준을 설정합니다. 설정한 시간을 초과하여 실행되는 경우만 정보를 수집합니다. Default: 1000 Millisecond
whatap.profile_internal_method_time=1000
;PHP 내부함수에 전달되는 인수의 정보를 같이 출력합니다.
;숫자형, 문자형만 값이 출력됩니다. Default: false (true,false)
whatap.profile_internal_method_param_enabled=false
profile_internal_time을 빠르게 설정하면 서버에 부하를 줄 수 있습니다. |
Apache 및 PHP-FPM의 재시작 후 적용됩니다. |
Error, Exception 제외 기능
사용자가 설정한 Error 또는 Exception 정보를 제외하는 기능을 추가하였습니다.
Exception 의 경우 Custom Exception Class 가 정의되어 있지 않으면, 기본으로 "Exception" 으로 수집됩니다.
특정 Exception을 구분하기 위해서는 Custom Exception Class를 정의하고 해당 이름을 지정하면 제외 시킬 수 있습니다.
;특정 Error 또는 Exception 을 Business Exception으로 지정합니다. 히트맵에서는 에러로 표기되지 않고 통계정보에만 수집됩니다. Default ""
;수집되는 Error Class 명과 동일하게 적용합니다. 콤마를 구분자로 하여 여러개를 등록할 수 있습니다.
whatap.bix_exceptions=CustomException, NotFoundException
; 특정 Error 또는 Exception 을 무시합니다. Default ""
; 수집되는 Error Class 명과 동일하게 적용합니다. 콤마를 구분자로 하여 여러개를 등록할 수 있습니다.
whatap.ignore_exceptions=CustomException, NotFoundException
session 함수 프로파일링 추가
session_start, session_write_close 함수의 실행시간을 수집하는 기능을 추가하였습니다.
; PHP 내부 함수의 추적 여부를 설정합니다. Default: true (true,false)
whatap.profile_session_enabled=true
Apache 및 PHP-FPM의 재시작 후 적용됩니다. |
히트맵 이벤트 알림
프로젝트(사이트)의 이벤트> 이벤트설정 의 히트맵 설정과 동일한 설정을 에이전트단위로 설정할 수 있습니다. 추가로 에러가 발생할 경우만 이벤트 알림을 발행합니다. 이벤트 알림 수신 설정은 이벤트>이벤트수신설정에서 설정 가능합니다.
이벤트 가로 라인
히트맵의 응답시간 분포상, 응답시간이 지정시간(whatap.hitmap_hoirz_event_basetime) 이상인 트랜잭션이 동일 응답시간 구간에 연속하여 지정시간(whatap.hitmap_horiz_event_duration) 동안 발생할 경우 알림이 발생합니다. *연속: X축(5초) 단위의 분포가 연속된 선으로 나타날 경우 (중간에 끊김이 있는 경우는 해당되지 않습니다.)
; 이벤트 가로 라인 활성화 여부를 설정합니다. Default: false (true,false)
whatap.hitmap_horiz_event_enabled=true
; 가로줄 현상의 지속시간 설정합니다. Default: 3000 millisecond
whatap.hitmap_horiz_event_duration=30000
; 응답시간의 기준을 설정합니다. Default: 10000 millisecond
whatap.hitmap_horiz_event_basetime=10000
; 에러가 발생한 경우만 이벤트 알림을 발생합니다. Default: false(true,false)
whatap.hitmap_horiz_event_error_only=false
; 이벤트 알림 발행 시에 중복 이벤트 억제 시간을 지정합니다. 해당 시간 내에는 다시 발행되지 않습니다. Default: 300000 millisecond
whatap.hitmap_horiz_event_interval=300000
이벤트 세로 라인
히트맵의 응답시간 분포상, X축 단일 구간(5초)에 세로줄이 나타나는 현상이 지정시간(whatap.hitmap_ver_event_duration)에 해당하는 시간 동안 지속될 경우 알림이 발생합니다. *세로 줄 현상 : 2.5초 ~ 80초를 표현하는 전체 100개 구간 중, 경고 구간이 마킹된 경우 [경고 알림]이 발생하며, 동일한 규칙으로 위험구간이 마킹된 경우 [위험 알림]이 발생합니다
; 이벤트 세로 라인 활성화 여부를 설정합니다. Default: false (true,false)
whatap.hitmap_ver_event_enabled=true
; 세로줄 현상의 지속시간을 설정합니다. Default : 30000 millisecond
whatap.hitmap_ver_event_duration=30000
; 에러가 발생한 경우만 이벤트 알림을 발행합니다. Default : false (true, false)
whatap.hitmap_ver_event_error_only=false
; 세로줄 현상의 경고 구간 시작 지점입니다. 종료지점은 위험구간 시작 지점 전까지 입니다.
whatap.hitmap_ver_event_warning_percent=60
; 세로줄 현상의 위험 구간 시작 지점입니다.
whatap.hitmap_ver_event_fatal_percent=80
; 이벤트 알림 발행 시에 중복 이벤트 억제 시간을 지정합니다. 해당 시간 내에는 다시 발행되지 않습니다. Default: 300000 millisecond
whatap.hitmap_ver_event_interval=300000
토폴로지 설정
사용자의 설정 없이도 기본적으로 활성화 되도록 수정하였습니다.
; 트랜잭션 정보로 토폴로지 통계를 생성합니다, Default: true (true,false)
whatap.tx_caller_meter_enabled=true
; Database 연결 정보로 토폴로지 통계를 생성합니다, Default: true (true,false)
whatap.sql_dbc_meter_enabled=true
; Http 외부 호출 정보로 토폴로지 통계를 생성합니다, Default: true (true,false)
whatap.httpc_host_meter_enabled=true
PHP Agent 0.4.8
2019-04-18
업데이트
PHP 내부 함수 프로파일링 추가
PHP 내부 함수인 compile_file, compile_string 함수를 추척하는 기능을 추가했습니다.
스크립트 실행 전에 컴파일하는 함수로 Main, include, require 및 autoload 스크립트의 컴파일 시점을 확인할 수 있습니다.
스크립트 파일 경로와 실행시간을 확인할 수 있습니다
; compile_file, compile_string 함수의 추적 여부를 설정합니다. Default: false (true,false)
whatap.profile_compile_file_enabled=true
; 실행시간의 기준을 설정합니다. 설정한 시간을 초과하여 실행되는 경우만 정보를 수집합니다. Default: 200 Millisecond
whatap.profile_compile_file_basetime=200

whatap.profile_compile_file_basetime을 너무 빠르게 설정하면 서버에 부하를 줄 수 있습니다. |
Apache 및 PHP-FPM의 재시작 후 적용됩니다. |
PHP Agent 0.4.6
2019-03-14
업데이트
토폴로지 기능 추가
아래 옵션 설정 시 조회 가능합니다. 기본값은 false 입니다.
-
어플리케이션 토폴로지는 모든 에이전트의 관계를 표현합니다.
; 트랜잭션 정보로 토폴로지 통계를 생성합니다, Default: false (true,false)
whatap.tx_caller_meter_enabled=true
; Database 연결 정보로 토폴로지 통계를 생성합니다, Default: false (true,false)
whatap.sql_dbc_meter_enabled=true
; Http 외부 호출 정보로 토폴로지 통계를 생성합니다, Default: false (true,false)
whatap.httpc_host_meter_enabled=true

-
그룹 토폴로지는 에이전트를 통합하여 관계를 표현합니다. whatap.okind 설정 값으로 공통 이름을 설정하면 통합하여 표현합니다.
; 그룹 토폴로지를 위해 에이전트의 그룹명을 임의로 설정합니다.
whatap.okind=PHP-DEMO

멀티 서버 트랜잭션 (트랜잭션 연계 추적) 기능 업데이트
옵션을 세분화 했습니다. 옵션으로 멀티 서버 트랜잭션 추적을 활성화 할 수 있습니다. 별도 설정이 없는 경우 추적하지 않습니다.
; 멀티 서버 트랜잭션에서 Callser&Callee간에 버전별 의존성 통계를 수집합니다. Default: false (true,false)
whatap.mtrace_enabled=true
; 트랜잭션 연계 추적 여부, Default: false (true,false)
whatap.mtrace_callee_txid_enabled=true
; 최초 트랜잭션이 발생할 때 발급받는 MTID(Multi Transaction ID)의 발급비율, Default: 10 (Percent)
; 최대값 100을 설정하면 모든 외부 호출에 대해 MTID를 생성합니다.
whatap.mtrace_rate=10
; Http Caller는 Callee에게 자신의 URL을 넘겨줍니다. 이때 URL길이를 제한합니다., Default: 80 byte
whatap.mtrace_send_url_length=80
; 현 인스턴스의 애플리케이션 버전을 지정합니다.임의의 문자열을 지정할 수 있습니다.
; 이 데이터는 호출통계를 위해 사용됩니다., Default: 공백
whatap.mtrace_spec=
해당 옵션은 Apache 또는 PHP-FPM을 재시작 하여야 적용됩니다. |
PHP Agent 0.4.5
2018-12-11
업데이트
멀티 서버 트랜잭션 (트랜잭션 연계 추적) 기능 추가
서비스(업무) 별로 분리 되어 있는 애플리케이션 서비스들간의 호출을 추적할 수 있습니다.
와탭에 등록되어 있는 프로젝트라면 프로젝트에 등록된 애플리케이션 서비스들간의 호출에 대한 추적을 말합니다.
멀티서버 트랜잭션 추적 옵션을 설정한 경우에 한하여 트랜잭션 연계 추적이 가능합니다.
외부 호출 시에 지정된 헤더를 추가하는 것으로 트랜잭션 연계 추적이 가능합니다.
/usr/whatap/php/lib/WhaTap.php
/usr/whatap/php/lib/sample_mtrace.php
<?php
//==================================================================
// 와탭 라이브러리를 추가합니다.
include_once './WhaTap.php';
//==================================================================
$url = "http://localhost/sample.php";
$ch = curl_init();
$headers = array();
//==================================================================
// 와탭 라이브러리에서 트랜잭션 연계추적에 필요한 헤더 정보를 가져옵니다. key,value 형식의 배열 입니다.
echo "Get Mtrace opt and set curl header(x-wtap-mst, x-wtap-inf, x-wtap-tx) <hr/>";
$whatap_mtrace = WhaTap::whatap_get_mtrace();
// cURL에 추가할 사용자 헤더 배열에 와탭 헤더를 추가합니다.
foreach ($whatap_mtrace as $key => $value){
//echo $key."=".$value."<br/>";
array_push($headers, "$key:$value");
}
unset($value);
//==================================================================
// 헤더를 cURL에 설정하고 외부 호출을 진행합니다.
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
$ret = curl_exec($ch);
curl_close($ch);
트랜잭션 상세보기에서 확인할 수 있습니다.


PHP Agent 0.4.3
PHP Agent 0.4.1
2018-08-23
업데이트
HTTP 파라메터
Get, Post 파라메터 중 text 타입의 이름 과 값을 수집합니다.
최대 40개 (Get 20개, Post 20개) 를 수집하며 파라메터 이름과 값은 최대 256 byte 까지 수집됩니다.
파라메터 정보는 별도 암호화되어 전송되며, 해당 애플리케이션 서버의 /usr/whatap/php/paramkey.txt 에 있는 키로 복호화하여 볼 수 있습니다.
설정 옵션은 아래와 같습니다.
아래 설정은 모든 url에 대한 파라메터 정보를 수집하는 설정입니다. 특정 url만 수집하기 위해서는 url_prefix 옵션을 변경하여야 합니다.
# 파라메터 수집 여부, Default: false (true,false)
whatap.profile_http_parameter_enabled=true
# 파라메터 수집이 필요한 특정 URL 접두사 설정.
whatap.profile_http_parameter_url_prefix=/
해당 옵션은 Apache 또는 PHP-FPM을 재시작 하여야 적용됩니다. |
PHP Agent 0.3.7
2018-04-24
업데이트
Goole App Engine 지원
Google App Enging 의 환경(app.yaml)을 flex/ custom 으로 설정 합니다.
env: flex
runtime: custom
app.yaml 과 같은 위치에 Dockerfile 을 생성하고 아래 내용을 추가 합니다.
PHP 버전 변경은 FROM 이미지를 변경하시면 됩니다.
# google-appengine php php56, php70, php71
FROM gcr.io/google-appengine/php56
# WhaTap. Install Lib
RUN apt-get install wget -y
# WhaTap. Link php-fpm
RUN ln -s /opt/php/sbin/php-fpm /usr/bin/php-fpm
# WhaTap. Install repository and whatap-php
RUN wget http://repo.whatap.io/debian/release.gpg -O -| apt-key add -
RUN wget http://repo.whatap.io/debian/whatap-repo_1.0_all.deb
RUN dpkg -i whatap-repo_1.0_all.deb
RUN apt-get update
RUN apt-get install whatap-php
# WhaTap. Configure PHP agent
RUN (echo "xxxxxxxx"; echo "1.1.1.1/2.2.2.2")|/usr/whatap/php/install.sh
# WhaTap. Add supervisor/conf.d/whatap.conf. Run whatap-php service
RUN echo "[program:whatap-php]" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "command = /etc/init.d/whatap-php start" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stdout_logfile = /dev/stdout" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stdout_logfile_maxbytes=0" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stderr_logfile = /dev/stderr" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stderr_logfile_maxbytes=0" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "user = root" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "autostart = true" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "autorestart = true" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "priority = 10" >> /etc/supervisor/conf.d/whatap.conf
프로젝트 생성 후 발급받은 수집서버 아이피에 대한 Tcp Outbound 6600 허용해 주세요
변경된 app.yaml 과 Dockerfile 을 Google App Engine에 배포하면 PHP 모니터링 프로젝트 대시보드 또는 서버 화면에서 확인이 가능합니다.
설치
PHP 환경 선택 설치
whatap-php 패키지 설치 후 PHP 환경에 따른 설정을 진행하는 스크립트(install.sh)에 사용자가 환경을 지정하여 설치하는 기능이 추가되었습니다.
-
PHP 버전(-v, –php-version) PHP 설정파일 위치(-i, –php-ini ), 웹서버 또는 PHP-FPM 실행 파일명(-p, –process, 메모리 사용량 수집을 위한 정보), ZTS 지원여부(-z, –php-zts)를 지정하여 설치 가능합니다.
/usr/whatap/php/install.sh -l <license> -s <whatap.server> -v 5.3 -i /etc/php.ini -p php-fpm [-z|--zts]
-
PHP CLI 명령어 위치(-e, –php-exe) , 웹서버 또는 PHP-FPM 실행 파일명(-p, –process, 메모리 사용량 수집을 위한 정보), ZTS 지원 여부(-z, –php-zts)를 지정하여 설치 가능합니다.
/usr/whatap/php/install.sh -l <license> -s <whatap.server> -e /usr/bin/php -p php-fpm [-z|--zts]
PHP Agent 0.3.1
2017-11-23
업데이트
메소드 프로파일
메소드 프로파일 기능이 추가되었습니다.
실행시간이 1초를 초과하는 사용자 함수의 정보를 트랜잭션 상세 정보에서 확인 할 수 있습니다.
기본 설정은 true 입니다.
whatap.ini 에 해당 설정을 추가 합니다. (PHP 컴파일 설치로 php.ini 에 추가해야 할 수도 있습니다. )

whatap.profile_method_enabled=true
해당 옵션은 Apache 또는 PHP-FPM을 재시작 하여야 적용됩니다. |
PHP 라이브러리
PHP Class 라이브러리가 추가 되었습니다.
PHP 소스코드에 함수를 추가하여 원하는 구간의 실행 시간 및 스택 정보를 확인할 수 있습니다.
<?php
// 라이브러리 위치 /usr/whatap/php/lib/WhaTap
include_once './WhaTap.php';
// 시작 지점 @param name string, stack_enabled boolean
WhaTap::whatap_begin_step("Curl_Setopt_array", true);
// 내부 프로세스
...
// 종료 지점
WhaTap::whatap_end_step();
?>

PHP Agent 0.3.0
2017-10-17
업데이트
지원 환경이 추가 되었습니다.
-
PHP 5.2(NZTS, ZTS) 이상 버전에서 모니터링이 지원됩니다.
-
CentOS 6.x (64bit) 이상, Ubuntu 12.04 (64bit) 이상 버전에서 모니터링이 지원됩니다.
실시간 사용자 수를 측정하는 기능이 보완되었습니다.
PHP 기본 쿠키(PHPSESSID) 및 프레임워크 쿠키(ci_session, laravel_session) 를 기준으로 사용자를 구분합니다. 쿠키 사용을 설정하면 기본 쿠키가 없는 경우에 “WHATAP” 키를 쿠키에 추가하여 사용자를 구분할 수 있습니다.
whatap.trace_user_set_cookie=true
쿠키를 사용하지 않는 환경에서 특정 HTTP 헤더 키를 가져와서 사용자를 구분할 수 있습니다.
whatap.trace_user_header_ticket=[HTTP Header Key]
whatap.ini 에 해당 설정을 추가하고 서비스를 재시작하면 적용됩니다. (PHP 컴파일 설치로 php.ini 에 추가해야 할 수도 있습니다. )
버그
설치 문제를 보완하였습니다.
PHP 소스를 컴파일 하여 직접 설치하는 경우에, –with-config-file-scan-dir 옵션을 설정하지 않으면 추가 설정 파일(ini)을 로딩하는 기능이 적용되지 않습니다.
이 경우 설정파일(whatap.ini)을 복사하지 못하는 문제가 있습니다.
오류 문구는 다음과 같습니다.
PHP_INI_DIR=(none)
cp: cannot create regular file `(none)/whatap.ini': 그런 파일이나 디렉터리가 없습니다
whatap.ini 내용을 분리하여 설정하도록 수정되었습니다. (설치 가이드 내용 중 수동 설치 항목)
PHP Extension 설정 내용은 PHP 기본 설정파일인 php.ini 에 추가되고, 그 외 설정은 /usr/whatap/php/whatap.ini 에 설정 됩니다.
PHP Agent 0.2.6
Python Agent Release Notes
Python Agent 1.0.4
2020-11-02 Agent download: https://pypi.org/project/whatap-python/1.0.4/
Python Agent 1.0.0
2020-09-16 Agent download: https://pypi.org/project/whatap-python/1.0.0/
Python Agent 0.1.116
2020-08-12 Agent download: https://pypi.org/project/whatap-python/0.1.116/
Python Agent 0.1.94
2020-01-30 Agent download: https://pypi.org/project/whatap-python/0.1.94/
Python Agent 0.1.87
2019-09-19 Agent download: https://pypi.org/project/whatap-python/0.1.87/
Python Agent 0.1.81
2019-7-31 Agent download: https://pypi.org/project/whatap-python/0.1.81/
Python Agent 0.1.71
2018-12-10 Agent download: https://pypi.org/project/whatap-python/0.1.71/
SQL파라미터정보 조회 기능 추가
트랜잭션 프로파일 데이터에서 SQL파라미터정보를 보안키를 통하여 조회할 수 있습니다. whatap.conf 에 다음 옵션을 적용하면 외부 호출에 대한 파라미터를 조회할 수 있습니다. 추가된 옵션은 다음과 같습니다.
- profile_sql_param_enabled
-
Default : false
Type : Boolean
SQL 파라미터를 수집을 활성화합니다. 단 파라미터는 별도 보안키를 입력해야 조회할 수 있습니다. 보안 키는 에이전트 설치 경로의 paramkey.txt 파일에 6 자리로 지정합니다. paramkey.txt 가 존재하지 않는 경우 자동 생성되며 random 키가 설정됩니다.

HTTP-PARAMETERS 데이터 수집 기능 추가
트랜잭션 프로파일 데이터에서 HTTP-PARAMETERS 데이터를 수집하는 옵션이 추가되었습니다. whatap.conf 에 다음 옵션을 적용하면 외부 호출에 대한 파라미터를 조회할 수 있습니다. 추가된 옵션은 다음과 같습니다.
- profile_http_parameter_enabled
-
Default : false
Type : Boolean
http 파라미터를 프로파일링을 활성화합니다. 단 파라미터는 별도 보안키를 입력해야 조회할 수 있습니다. 보안 키는 에이전트 설치 경로의 paramkey.txt 파일에 6 자리로 지정합니다. paramkey.txt 가 존재하지 않는 경우 자동 생성되며 random 키가 설정됩니다.


URL의 쿼리 스트링을 함께 수집하는 기능 추가
트랜잭션 프로파일 데이터에서 URL의 쿼리 스트링을 함께 수집하는 옵션이 추가되었습니다. whatap.conf 에 다음 옵션을 적용하면 외부 호출에 대한 파라미터를 조회할 수 있습니다. 추가된 옵션은 다음과 같습니다.
- query_string_enabled
-
Default : false
Type : Boolean
트랜잭션 URL의 쿼리 스트링을 함께 수집하는 기능을 활성화합니다. - query_string_enabled
-
Default : false
Type : Boolean
트랜잭션 URL의 쿼리 스트링을 함께 수집하는 기능을 활성화합니다.
.NET Agent Release Notes
.NET Agent 1.0.4
.NET Agent 1.0.2
2020-03-31
업데이트
IIS 성능 카운트 대시보드 지원
IIS 성능 카운터 지표를 수집해서 대시보드에 보여줍니다.

-
ASP.NET
-
Requests Rejected
-
Requests Queued
-
Worker Process Restarts
-
-
ASP.NET Applications
-
Requests/Sec
-
Errors Total/Sec
-
Pipeline Instance Count
-
-
Web Service
-
Current Connections
-
ISAPI Extension Requests/sec
-
Bytes Sent/sec
-
Bytes Received/sec
-
Files Sent/sec
-
Files Received/sec
-
Server Agent Release Notes
Server Agent 1.3.4
윈도우 에이전트 1.3.4버젼 Deprecation
-
윈도우 에이전트 1.3.4버젼 CPU 성능 정보 수집기능에 이상 - CPU정보 과다 수집 - 이 있어 단종 되었습니다.
-
1.3.5 버젼으로 업그레이드 부탁드립니다.
-
업그레이드는 http://repo.whatap.io/windows/whatap_infra.zip 파일을 다운받으신 후 압축 해제후 설치파일을 실행하시면 최신버젼으로 업그레이드 됩니다.
-
설치 삭제는 필요없습니다.
Server Agent 1.3.0
Linux Agent Watch Dog 기능 추가
커널버그를 포함한 수집 대상서버의 상태가 일시적으로 비정상적인 경우 /proc/ 디렉토리 아래의 성능정보를 읽어오지 못하여 성능 정보 수집이 중단되는 현상이 있습니다. 일시적인 비정상 상태에서 모니터링 프로세스를 재시작하면 해당 현상이 개선되는 경우가 확인되었습니다. 일시적인 성능 정보 수집 이상에 대처하는 시스템 관리자의 업무부담을 줄이기 위해 Watch Dog 기능을 추가하였습니다. 업데이트 적용시 whatap_infrad 프로세스가 Watch Dog 모드 프로세스 및 데이터 수집모드 프로세스로 각각 작동합니다. Watch Dog 모드 프로세스는 데이터 수집모드 에이전트의 정상 작동 여부를 실시간으로 확인하여 데이터 수집기능에 문제가 발생하면 자동으로 프로세스를 재시작하여 데이터수집을 정상화 합니다. 와탭 서버 모니터링 설치 및 시작, 재시작, 정지 방법은 기존과 동일합니다.
업데이트 혹은 신규 설치시 아래 예시와 같이 Watch Dog 모드인 PID 19165(서버별로 다름) 프로세스 및 데이터 수집모드인 PID 19175(서버별로 다름) 프로세스를 확인하실 수 있습니다.
root 19165 1 0 10:04 ? 00:00:00 /usr/whatap/infra/whatap_infrad root 19175 19165 1 10:04 ? 00:00:00 /usr/whatap/infra/whatap_infrad foreground
두개의 프로세스는 unix socket /var/run/whatap_infrad.sock으로 통신합니다. |