Release Notes WhaTap Support support@whatap.io 2019-03-07 1.0.1

본 문서는 WhaTap Release Notes 입니다.

Service Release Notes

WhaTap Support <support@whatap.io>

Service 1.32.0

1.32.0

2020-11-11

통합

통합 대시보드 - 벌집차트 위젯에 테마를 적용하고 카운트 합계 표시를 추가했습니다.

메트릭스 알림설정 - 알림 수정 화면에서 입력 도움 기능을 추가하였습니다.

메트릭스 보드 - 선택된 필드가 다수인 경우, 선택 항목이 영역을 벗어나 표시되는 현상을 개선했습니다.

프로젝트 목록 - 다수의 프로젝트가 존재하는 경우, 화면의 반응성이 저하되던 현상을 개선했습니다.

메트릭스 차트 - 카드 우상단의 복사 기능을 폐기했습니다.

로그 메트릭스 - 메뉴를 제거했습니다.

메트릭스 보드 - 다른 사람에게 공유하기 시도 시, 이메일 입력창이 표시되지 않는 버그를 수정했습니다.

메트릭스 보드 - 뷰모드에서 창크기 조절이 가능한 것으로 표시되던 버그를 수정했습니다.


컨테이너

화면간 이동을 페이지 전환 없이 가능하도록 개선했습니다.

마스터 메타 - 테이블의 Name 값 좌측 정렬로 가독성을 개선했습니다.

통계 - 에러 - CSV 익스포트 시 화면에 조회된 수치와 다르게 출력되는 버그를 수정했습니다.

컨테이너맵 - 우측 패널에서 지표값이 100%를 초과할 때 레이아웃이 깨지는 현상을 수정했습니다.

마스터 메타 - 이벤트 정보 미출력 버그를 수정했습니다.


애플리케이션

애플리케이션 목록 - 쓰레드 목록 - 쓰레드 소유자 ID 기준 추적이 용이하도록 소유자 ID 클릭 시 해당 쓰레드 정보가 펼쳐지는 기능을 추가했습니다.

액티브트랜잭션 - 확보된 모든 정보를 표시하도록 개선했습니다.

프로파일 - "User Token"의 이름을 ⇒ "User ID"로 변경했습니다.

히트맵 - 프로파일 목록 - "User Agent" 컬럼을 제거했습니다.

통계 - 에러 - CSV 익스포트 시 화면에 조회된 수치와 다르게 출력되는 버그를 수정했습니다.

토폴로지 - 하이라이트 필터 동작 불능 및 이후 토폴로지 갱신되지 않는 버그를 수정했습니다.

서버 설정 - 옵션 목록에 APP용 옵션이 표시되던 버그를 수정했습니다.


서버

서버 목록 - 서버 카드 페이지를 추가했습니다.

서버 목록 - 네트워크/디스크 관련 컬럼 필터가 목록 필터로 오인되지 않도록 버튼명을 교체했고, 설명을 표시했습니다.

리소스보드 - 벌집차트에 카운트 합계 표시를 추가했습니다.

서버 가용성 - 화면을 개편하고 기능 설명을 추가했습니다.

리소스 이퀄라이저 - 차트 내 서버 클릭 시 서버 상세 이동 기능을 추가했습니다.

알림 설정 - 알림 상세 처리내역 입력 시 화면이 멈추는 현상을 수정했습니다.

에이전트 설치 - window 탭 진입 시 화면이 표시되지 않는 버그를 수정했습니다.


데이터베이스

메트릭스 차트 - 위젯 상세 화면의 에이전트 필터와 상단 선택 상태가 일치 하지 않는 현상을 수정했습니다.


URL

알림설정 - 경과시간 지표의 부등호가 반대로 적용되는 문제를 수정했습니다.

알림설정 - 내용 수정 시 목록 바로 반영되지 않는 문제를 수정했습니다.

Service 1.30.0

1.30.0

2020-10-14

통합

메트릭스 차트 - CSV 다운로드 기능을 추가했습니다.

옵션 바 개편 - 화면 별 상이한 인터페이스의 옵션 바를 통일했습니다.

통합 애플리케이션 토폴로지 - 테마를 적용했습니다.

통합 대시보드 보로노이 차트에서 서버 모니터링의 경우 '최근 알람 개수' ⇒ '현재 서버 상태' 를 표시하도록 변경되었습니다.

서버 세션 끊김 시 동작을 개선했습니다.

회원가입 입력 보안성 및 정합성 검증을 강화했습니다.

사이트맵에 맞춰 네비게이션을 정리했습니다.

통합 대시보드 이퀄라이저 차트의 정렬이 되지 않던 현상을 수정했습니다.

컨테이너

컨테이너 알림 설정을 추가했습니다.

메타 토폴로지 - Namespace, Label 필터를 추가했고, 고정 배치로 변경했습니다.

대시보드 - APDEX 도움말을 추가했습니다.

애플리케이션 서비스 대시보드 - 멀티서비스 대시보드와 애플리케이션 서비스 대시보드를 한 화면에서 볼 수 있도록 메뉴를 통합했습니다.

컨테이너 맵 - 타임라인을 시간 단위 바 차트로 개편했습니다.

통계 메뉴를 통합했습니다.

트랜잭션 프로파일 성능을 튜닝했습니다. (스크롤 지연 현상 개선)

애플리케이션

알림 설정 - 가로 카드 뷰 스타일로 개선했습니다.

대시보드 - APDEX 도움말을 추가했습니다.

대시보드 - 우측 패널을 추가하여 시계열 멀티 라인 차트 및 개별 차트 추가했고, 메트릭스 차트 링크 추가했습니다.

트랜잭션 검색 - 프로파일 새 창(탭)으로 열 수 있도록 하는 기능을 추가했습니다.

애플리케이션 서비스 대시보드 - 멀티서비스 대시보드와 애플리케이션 서비스 대시보드를 한 화면에서 볼 수 있도록 메뉴를 통합했습니다.

통계 메뉴를 통합했습니다.

트랜잭션 프로파일 성능을 튜닝했습니다. (스크롤 지연 현상 개선)

서버

에이전트를 타 프로젝트로 이동하는 기능을 추가했습니다.

메트릭스 알림 설정을 추가했습니다.

서버 알림설정 > 프로세스 탭 - 프로세스 알림 조건 등록시 프로세스 항목에 pid검색기능을 적용했습니다.

확장팩 메뉴를 폐기했습니다.

서버 디테일 - CPU 사용량 차트의 색상을 대비가 강한 색으로 변경하였습니다.

DB

메트릭스 알림 설정을 추가했습니다.

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

알림 설정 - 카드 뷰 형태로 UI를 개선하였습니다.

메뉴 - Master 프로젝트 메뉴에서 에이전트 설치가 없는 문제를 수정하였습니다.

모바일

URL 모니터링 - Android 단말에 URL 모니터링 기능 추가하였습니다.

프로젝트 상단 이벤트 기록 메뉴에서 이벤트 클릭 시 상세 분석을 볼 수 있도록 기능을 추가하였습니다.

애플리케이션 모니터링 - 차트 순서를 사용성이 높은 순으로 재배치 하였습니다

공통

이용내역 > 결제수단 - 기본 결제 수단을 나이스페이로 변경하고, 결제 수단을 정상적으로 등록하였을 시에 유료 전환 메뉴로 이동할 수 있도록 기능을 수정하였습니다.

알림 수신설정 - 어드민 이상의 권한에서 수퍼어드민을 제외한 타계정의 알림 언어 및 요일 설정이 가능하도록 수정

이용내역 > 사용량 - 사용내역에서 실시간 사용현황을 조회할 수 있도록 수정하였으며, 미터링 메뉴는 폐기하였습니다.

관리 > 프로젝트 관리 - 애플리케이션 시간대가 잘못 반영되는 버그를 수정하였습니다.

기타

다중화 Yard 구성 시 알림 설정을 복제하는 기능을 추가하였습니다.

설치형 - 커스텀 로고를 적용할 수 있도록 수정하였습니다.

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 차트가 평균으로 표시되고 있어 합산 값으로 표시되도록 수정하였습니다.

서버

서버 목록 - 프로세스 그룹 등록 기능을 추가하였습니다.

서버 상세
  • 모달에 최초 데이터 미표시 되는 건을 수정하였습니다.

  • 대상 서버 변경 시 기 표시 데이터에 반영되지 않는 현상을 수정하였습니다.

알림 기록 - 태그 카운트 알림을 추가하였습니다.

컴파운드아이 - 마우스 휠을 통해 차트를 줌인/아웃하고, 화면 영역 전체를 활용하여 차트를 표현할 수 있도록 재배치하였습니다.

데이터베이스

인스턴스 모니터링 - 알림 내역 클릭시 지표추이 화면에 전후 각 10분 범위 데이터 표시하도록 개선하였습니다.

SQL 플랜 - 가독성 및 포매팅 기능을 개선하였습니다.

테이블 스페이스 용량 증감 - 옵션 바 레이아웃 스타일을 조절했습니다.

SQL 통계 - 차트 범례의 스타일을 개선했습니다.

알림 설정 - 취소 버튼 액션이 미동작하는 문제를 수정했습니다.

컨테이너

프로젝트 그룹 > 쿠버리스트 - 새창으로 열리던 페이지를 다른 프로젝트와 동일하게 SPA로 전환되도록 개선했습니다.

노드 목록
  • 노드 상세 - 테이블 라벨이 잘못 표시되는 문제를 수정하였습니다.

커스텀 히트맵 - 동작하지 않는 필터를 수정했습니다.

CPU 이퀼라이저 - 데이터가 나오지 않는 문제를 수정했습니다.

퍼모먼스 요약 - 데이터가 나오지 않는 문제를 수정했습니다.

Service 1.22.0

1.22.0

2020-06-03

공통

실시간 알림 기능이 추가되어, 권한을 보유한 모든 프로젝트의 실시간 알림 현황을 확인하실 수 있습니다.

테마 기능을 개편하여 추가하였습니다.

프로젝트 멤버/그룹 멤버 - 소팅 기능을 추가하였습니다.

보고서 - 예약 발송 기능을 개편하여 사용 편의성을 확보하였습니다.

타 프로젝트로 이동시 알림 팝업이 발생하던 현상 및 알림 목록에 이전에 보고있던 프로젝트의 알림이 나타나는 현상을 수정하였습니다.

통합 대시보드 - 시리즈 텍스트 차트 - 멀티 라인 차트의 텍스트가 평균 및 합산으로 표시되지 않는 버그를 수정하였습니다.

통합 대시보드 - 시리즈 텍스트 차트 - 시리즈 텍스트 위젯 값이 1로 표시되는 현상을 수정하였습니다.

계정 정보 관리 - 나이스페이 등록 오류를 수정하였습니다.

애플리케이션

애플리케이션 대시보드/통합 대시보드/히트맵 - 애플리케이션 그룹 복수 지정이 가능하도록 기능을 개션하였습니다.

프로파일 - CPU 및 메모리 사용량 정보가 있는 경우, 컬럼 선택을 통해 표시 가능하도록 개편하였습니다.

애플리케이션 대시보드 - TPS, 사용자 수 전일 비교 차트에 금일 데이터만 출력되는 현상을 수정하였습니다.

프로파일 - 프로파일 다이어그램 클릭 시 해당 스텝으로 이동하는 기능이 작동하지 않던 현상을 수정하였습니다.

클라이언트 브라우저 - 검색 목록에 건수가 0건인 데이터가 표시되는 현상을 수정하였습니다.

에이전트 설정 - 쓰레드 목록 테이블 컬럼이 이상해지는 현상을 수정하였습니다.

서버

서버 목록 - 경고 또는 위험 상태 서버의 이벤트 스냅샷 정보를 확인하는 기능을 추가하였습니다.

Server Status
Figure 1. Server Status
  • 서버 목록의 상태 칼럼을 클릭

  • 경고 알림 제목을 클릭하여 알림 상세화면 링크

리소스 이퀄라이저 - 자원 수가 많은 경우, 차트의 가독성이 떨어지는 문제를 해결하기 위해 차트별 최소 높이를 지정하였습니다.

서버 목록 및 상세 - 운영 체제에 따라 표시되는 지표가 변경되도록 수정하였습니다.

서버 목록 - 비활성 서버 클릭 시 서.

서버 목록 - 칼럼 선택 메뉴 옵션 선택시 에러 발생하는 현상을 수정하였습니다.

디스크 상세 팝업 - 알림 활성화 버튼이 동작하지 않던 현상을 수정하였습니다.

데이터베이스

인스턴스 목록/장기 트렌드 - 페이지를 개편하여 사용성을 강화하였습니다.

SQL 통계 - 애플리케이션 프로젝트로 연계 추적 시 필터링이 적용되지 않는 현상을 수정하였습니다.

컨테이너

컨테이너 목록 - 지수 단위가 잘못 표기되는 버그를 수정하였습니다.

Service 1.20.0

1.20.1

2020-05-13

애플리케이션

성능카운트 차트 쓰레드 관련 지표의 데이터 병합 옵션 선택 시 평균값 적용

큐브 시간 구간 이동 시 시간 차가 5분 이하인 경우 차트 데이터 조회가 기능하지 않는 현상 수정

공통

태그카운트 조회 CSV 내보내기 수정

브라우져 지원 - Firefox, Windows Chrome 에서 차트에 스크롤바가 표시되는 현상 수정

1.20.0

2020-05-07

통합모니터링

계정관리 Google OTP 적용하여 멀티팩터 인증을 통한 로그인 기능 추가

애플리케이션

탑스택, 유니크스택 비교 구간 선택 옵션 추가 (스택 간 비교 칼럼, 추이 그래프 반영)

프로파일 SQL 내 정규화 파라메타 이후가 주석으로 표시되는 현상 수정 (정규화 파라메타를 $로 변경하여 표시)

프로파일 프로파일 다이어그램 클릭 시 해당 스텝으로 이동되지 않는 버그 수정

서버

알림 기록 로그 알림의 상세 내역 스냅샷에 로그 정보 추가

데이터베이스

락트리 데이터 없는 구간 드래그 시, 지정한 시간 범위와 다른 데이터 조회되는 버그 수정

인스턴스 모니터링 액티브 세션 갱신 시 화면 표시되지 않는 버그 수정

컨테이너

알림 설정 애플리케이션 알림 기능 추가

사이트맵 컨테이너에 노출되어 있지 않던 애플리케이션 기능을 추가

  • 성능지표(카운트) 이상치 탐색

  • 성능 추이

  • 애플리케이션 큐브

  • 애플리케이션 - 에이전트 설정, 쓰로틀링 설정, 환경변수, 실행 환경변수, 힙 히스토그램, 로딩된 클래스, 라이브러리 버전, 쓰레드 목록/덤프, 소켓 오픈 개수, 메소드 성능 상태, 데이터소스 상태, 에이전트 로그, 시스템 GC, 힙 덤프, 모듈 의존성, 에이전트 상태

  • 통계/보고서 - 토폴로지 - 애플리케이션 통계 토폴로지, 인스턴스 통계 토폴로지, 그룹 통계 토폴로지

  • 관리 - 정비 계획

  • Laboratory - MSA 분석, 액티브 트랜잭션

프로젝트 목록 네임스페이스 프로젝트가 쿠버네티스 프로젝트 그룹에 표시되지 않는 버그 수정

Service 1.18.0

1.18.4

2020-04-20

통합 모니터링

통합대시보드 - 태그카운트 위젯의 데이터 조회 오류 수정

공통

신규 메뉴 - 이벤트 수신 설정 정보의 수정사항이 저장되지 않는 현상 수정

1.18.3

2020-04-14

서버

리소스이퀄라이져 - Disk IOPS 차트 깨짐 현상 수정

1.18.2

2020-04-13

애플리케이션

에이전트 설정 - 에이전트 목록 클릭시에 설정 정보가 갱신되지 않는 현상 수정

1.18.1

2020-04-10

애플리케이션

대시보드 - 금일 TPS, 금일 사용자수 차트 - 대시보드를 켜놓은 상태로 하루가 지날 시 차트가 끊겨보이는 현상 수정

PHP 에이전트 설치 문구 일부 수정

서버

리소스 이퀄라이져 화면 최소 사이즈 대응

컨테이너

태그카운트 조회 - 일부 카테고리의 데이터 조회 결과가 화면에 표시되지 않던 현상을 수정

공통

유료전환 - 유료전환 권한을 프로젝트 소유자로 제한

1.18.0

2020-04-08

통합모니터링

프로젝트 목록 확장 카드뷰 기능 추가

태그카운트 보드 스피드미터 차트가 그려지지 않는 현상을 수정

태그카운트 보드 차트 지표 고정 간격 옵션 지정시 차트 포맷 지정 불가 현상 수정

애플리케이션

MSA 분석 호출관계 정보 RAW 데이터 표시 및 CSV 다운로드 기능 추가

에이전트목록 메소드 성능상태 칼럼 데이터 표기 단위 수정

탑스택 애플리케이션을 지정해도 전체 대상으로 조회되는 버그를 수정

대시보드 일부 에이전트만 선택 후 화면 새로고침 시, 선택 상태와 화면 표시 결과가 다른 버그를 수정

서버

서버 상세 메뉴 이용 중 프로젝트 변경 시, 서버 목록 화면으로 이동하도록 함

서버 리소스보드 - 프로세스 목록 칼럼 헤더를 클릭 시 정렬 오작동 현상 수정

데이터베이스

지표 장기추이 차트 클릭 시 지정 날짜가 아닌 현재 날짜 기준 추이 페이지로 이동하는 버그를 수정

컨테이너

컨테이너맵 타임라인 이벤트 클릭 시 상세 화면 이동 링크 수정

컨테이너 성능 카운터 사용 가능 지표 선택 옵션이 정상적으로 표시되지 않는 현상 수정

공통

프로젝트 관리 - 사용자 권한 유저에 한해, 타 멤버의 계정 정보를 마스킹

신규 메뉴 에서 프로젝트 메뉴 이동 시 화면 새로고침이 필요한 페이지와 그대로 이용이 가능한 페이지를 구분

신규 메뉴 - 그룹 멤버 추가 버튼이 표시되지 않는 현상 수정

계정 관리 - 빌링 일부 입력창이 작동하지 않는 현상 수정

Service 1.16.0

1.16.2

2020-03-25

통합모니터링

통합대시보드 - 공유된 대시보드에 권한이 없는 프로젝트가 포함된 경우 다이얼로그에 권한이 없는 프로젝트 목록을 노출합니다.

애플리케이션

액티브 트랜잭션 - 다크 테마가 적용되지 않는 현상을 수정하였습니다.

MSA 분석 - 데이터를 조회하지 못하는 현상을 수정하였습니다.

쿠버네티스

에이전트 목록 - 상세 정보 표시되지 않는 현상을 수정하였습니다.

데이터베이스

락트리 차트 드래그 기능 추가
락트리 5분 단위 시간 선택 기능 오류 해결
지표장기추이 차트 클릭 후 지표추이로 넘어갈 때 00:00 ~ 23:59까지 불러오도록 처리
보고서 ALTIBASE, CUBRID 보고서 기능 추가
인스턴스 모니터링 액티브세션 중 쿼리값 클릭시 plan 모달 오류(sql 보기)
멀티인스턴스 데이터베이스 항목의 색상과 차트 색상 불일치 버그 수정
sql통계 ALTIBASE, CUBRID 항목추가 및 탭 클릭 오류 해결

1.16.1

2020-03-23

공통

결제 정보 - 계정 설정 페이지의 결제 정보 등록 기능에 나이스페이 카드 등록 기능을 추가하여 플러그인 설치 없이 카드 등록이 가능하도록 편의성을 확보하였습니다.

1.16.0

2020-03-19

통합모니터링

새로운 버전의 메뉴 기능 - 프로젝트 메뉴 하단 '새로운 화면 사용해보기' 버튼을 클릭하여 체험이 가능합니다.

주요 기능

  1. 그룹 선택, 프로젝트 간 이동이 편리합니다.

  2. 프로젝트 선택 시 해당 프로젝트 메뉴가 하단에 표시되며,
    메뉴 이동 기록이 저장되어 히스토리 기능(상단 메뉴 제목을 클릭)을 통해 기록 확인 및 이동이 가능합니다.

신규 레이아웃의 애플리케이션 대시보드

Application Dashboard

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

Project List

프로젝트 목록 카드뷰 스타일 개선
이메일 알림 - 잘못된 형식의 이메일 또는 이메일 플랫폼 상 오류로 전송 실패가 반복되는 경우 이메일 알림 서비스가 일시 제한되며, 이벤트 수신 설정 메뉴에서 재활성 기능 제공
통합대시보드 위젯 편집 - 컴파운드아이 차트타입 선택 시 카테고리 자동 선택

애플리케이션

MSA 서비스패턴 분석 기능 추가 - 멀티서버 트랜잭션 분석을 위한 통계적 방식의 분석 기능 - 사이트맵 - Laboratory - MSA 분석 메뉴 제공
액티브 트랜잭션 기능 추가 - 엑티브 트랜잭션, SQL, HTTP 호출 정보를 중심으로 실시간 모니터링하기 위한 기능 - 사이트맵 - Laboratory - 액티브 트랜잭션 메뉴 제공, 통합대시보드 - 위젯 편집 시 차트 유형으로 선택 가능
트랜잭션 검색 복수 검색 조건에 의한 트랜잭션 프로파일 조회 기능 탑재
애플리케이션 대시보드 일간 TPS, 일일 사용자 수 추이 전일 비교 차트 추가
통계 조회 시간 범위 3일, 7일, 10일 기간 설정 옵션 추가

서버

리소스 보드 DISK I/O TOP5의 수치 기준을 선택할 수 있는 옵션 제공

컨테이너

마스터 및 네임스페이스 프로젝트의 이름 변경 제한 - 네임스페이스 이름과 자동으로 매핑

공통

계정 정보 - 회원 탈퇴 기능 추가
유상 전환 - 유상 전환 권한이 없는 사용자가 SA에게 유상전환 요청할 수 있는 메일 알림 기능 추가, 제한 또는 트라이얼 상태 시 노출
계정 정보 화면 스타일 개편

Service 1.14.0

1.14.6

2020-03-16

서버

대시보드 히트맵 위젯 드래그시 트랜잭션 데이터가 나오지 않는 버그 수정

1.14.5

2020-03-12

서버

서버 상세정보 상단에 설정된 날짜와 자세히 보기 시에 나오는 창에서의 날짜가 달라지는 버그 수정

1.14.4

2020-03-03

애플리케이션

태그카운트 상단의 시간선택값이 잘못 더해져 이상한 시간값으로 수정되는 버그 수정
에이전트 설정 모든 비활성화 에이전트 삭제 버튼 동작하지 않는 부분 수정
에이전트 설치 JAVA Shell 스크립트 실행로직에 옵션 더하는 파트 추가 [톰캣, 스프링부트, WebLogic, jetty]

1.14.2

2020-03-03

애플리케이션

태그카운트 상단의 시간선택값이 잘못 더해져 이상한 시간값으로 수정되는 문제 수정
에이전트 설정 모든 비활성화 에이전트 삭제 버튼 동작하지 않음 수정

1.14.1

2020-03-02

애플리케이션

히트맵 에러 체크 변경시 다시 호출되지 않는 문제 수정
멀티 서버 트랜잭션 테이블 뷰에서 상세보기를 클릭한 이후 데이터 변경이 없더라도 펼친 프로파일 상세화면이 자동으로 닫히는 문제 수정

1.14.0

2020-02-26

통합모니터링

대시보드 서버 모니터링 프로젝트의 서버별 CPU, Memory 사용율 및 서버 활성상태를 표시하는 컴파운드아이 위젯 차트를 추가
대시보드 읽기 전용으로 공유하는 기능 추가, 프로젝트 멤버가 아니더라도 공유 받은 대시보드를 볼 수 있으며, 수정은 불가능 하도록 기능 제공
대시보드 제품 타입 선랙기능 개선, 비활성화된 제품타입이 보여지는 경우에 선택할 수 있는 옵션으로 자동으로 바뀌는 기능 추가

애플리케이션

성능지표(카운트) 차트 차트 추가 시 이전 변경된 위젯 하위에 배치하도록 하여 스크롤되어 최하단으로 이동하는 현상 수정
멀티서버 트랜잭션 모달 상태에서 테이블 뷰로 이동한 이후 테이블을 확장시키면 나오는 프로파일 뷰가 열리자마자 닫히는 현상 수정 [1.12.0 기 반영]
프로파일 다이어그램 트랜잭션 프로파일의 마지막 스텝 이의 시간선택기능에서 통계 최대 1일, 트랜잭션 검색 최대 1시간으로 최대 지정시간 적용 후 액티브스택이 확보된 경우 트랜잭션의 총 경과 시간까지의 차트가 아닌 마지막 스텝 까지만 차트에 표현되는 버그 수정
옵션바 상단의 시간선택기능에서 통계 최대 1일, 트랜잭션 검색 최대 1시간으로 최대 지정시간 적용

데이터베이스

멀티인스턴스 로드밸런스 차트의 지표를 변경 가능하도록 옵션 추가
ALTIBASE 인스턴스목록, 인스턴스 모니터링, 멀티인스턴스, 락트리, 지표추이, 주간/월간 카운트, 데이터베이스 파라미터, 지표장기추이, 지표추이비교 등의 기능추가

컨테이너

컨테이너맵 이벤트 타임라인 클릭 시, 컨테이너 목록 페이지로 Pod가 선택된 상태로 이동

Service 1.12.0

1.12.3

2020-02-17

애플리케이션

통계, 트랜잭션 검색 메뉴에서 CSV 내보내기 시 한 번에 다운로드 할 수 있는 CSV 줄(Line) 수를 제한하고 입력 초과 시 안내 문구를 삽입

서버

컴파운드아이 메모리, 디스크만 차트에 표현되는 버그 수정
컴파운드아이 최초 표시 시점에 서버 별로 파이 배경색이 다르게 표시되는 버그 수정

1.12.3

2020-02-14

공통

통합대시보드 블랙테마 적용 후 위젯 모달 아이콘만 테마가 적용되는 버그 수정
프로젝트 목록 카드뷰의 프로젝트 상태태그가 리스트 뷰의 상태태그와 일치하지 않는 버그 수정

1.12.2

2020-02-12

공통

통합대시보드 블랙테마 적용 후 프로젝트 목록 화면과 프로젝트 생성 모달에서 부분적으로 블랙테마가 남아있는 현상 수정
에이전트 설치페이지 영어/일본어/중국어 언어 설정된 상태에서 라이센스 발급이 표시되지 않는 현상 수정
멀티서버 트랜잭션 테이블 뷰에서 프로파일을 펼치면 자동으로 바로 접히는 문제 수정

1.12.0

2020-02-05

고객 요청 사항

[컨테이너] 파이썬 어플리케이션에 와탭 에이전트 설치 방법 에이전트설치에 추가

공통

대시보드 탬플릿 모달에서 프로젝트 목록 선택 시 프로덕트 타입에 맞는 목록만 나타나도록 수정
태그 대시보드 바차트 기능 제거
프로젝트 목록 파이어폭스에서 스타일 깨짐 현상 수정
통합대시보드 이퀄라이저 차트에서 위젯 사이즈에 따라 일부 데이터가 영역을 벗어나 표시되지 않는 버그를 수정
태그 대시보드 위젯에 지표 추가 시 미동작 버그 수정 [1.10.0에 기 반영]
태그 대시보드 기존 위젯 수정 시에 문제 발생 버그 수정
태그 대시보드 시리즈 차트 옵션 설정 문제 버그 수정

애플리케이션

탑스택 특정 스택을 기준으로 호출, 피호출 스택 파악이 가능한 기능을 추가 (다이어그램 표시상태에서만 사용 가능) [1.10.0에 기 반영]
PHP 에이전트 프로젝트 대시보드 에 액티브 스테이터스 위젯 추가
탑스택/유니크스택 하단 스택 비율 차트를 제거
태그 카운트 조회 조회 방식 수정

서버

과금방식 변경에 따라 VM 개수가 5개를 초과하는 경우 유료전환을 요청하도록 안내모달 추가
상단 메뉴에 알림목록을 볼 수 있는 버튼 추가
리소스보드 파이어폭스에서 스타일 깨짐 현상을 수정

데이터베이스

주간/월간 카운트 에이전트 전체선택 해제가 안되는 버그 수정

Service 1.10.0

1.10.0

2020-01-23

고객 요청 사항

알림 기록 CSV파일 다운로드 기능 추가
SQL 통계 최소 시간 항목 추가
통합대시보드 위젯에서 차트 유형 추가 (이퀄라이저 차트, 시리즈 텍스트 차트)

Equalizer Chart
Figure 2. Equalizer Chart
Series Text Chart
Figure 3. Series Text Chart

공통

계정 사용량 확인 기능 추가
통합대시보드 위젯 추가 시, 프로젝트 항목 중 제한 상태의 프로젝트는 나타나지 않도록 기능 수정
회원가입 절차 개선 및 간소화
프로젝트 목록 화면 스타일 개선 및 신규 프로젝트 생성 후 안내 기능 개선
에이전트 설치 화면 스타일 개선
통합대시보드 시리즈 비교 위젯이 자정 이후 차트 나오지 않은 버그 수정

애플리케이션

트랜잭션 프로파일 에러 발생 스텝에 에러 마크 추가
트랜잭션 프로파일 요약 태그를 클릭하여 태그 성능 지표 조회 연계 기능 추가
에이전트 업데이트 에이전트 별칭 노출
python 대시보드 액티브 스테이터스 차트 추가
알림 기록 CSV파일 다운로드 기능 추가
SQL 통계 최소 시간 항목 추가
성능지표 카운트 차트 액티브 스테이터스 지표 항목 추가
에이전트 설정 도움말 닫기 기능 추가
트랜잭션 검색 트랜잭션 ID로 검색 가능하도록 기능 개선
트랜잭션 프로파일 SQL문 1,000건 이상인 경우 성능 개선
트랜잭션 프로파일 ID 클릭 시 태그카운트 데이터 조회 화면으로 이동할 수 있도록 개선
액티브 트랜잭션 목록 조회한 상태에서 상세 내용 리프레쉬가 가능하도록 기능 개선
에이전트 설정 설정 항목이 없는 경우, 신규 설정이 추가되지 않는 버그 수정
에이전트 설정 설정 입력 시, html tag가 삽입되는 버그 수정
액티브 스택 차트 시간축이 반대 방향으로 표시되는 버그 수정
멀티 서버 트랜잭션 테이블 표시 시, 호출 순으로 정렬되지 않는 버그 수정
멀티 서버 트랜잭션 차트가 화면 전체 영역으로 표시되지 않는 버그 수정

컨테이너

알림 기록 CSV파일 다운로드 기능 추가
SQL 통계 최소 시간 항목 추가
에이전트 목록 마스터 프로젝트 선택 시, 어플리케이션 프로젝트는 나타나지 않도록 기능 수정
태그카운트 검색 옵션 기본값 설정 및 사용성 개선

서버

데이터베이스

Service 1.8.0

1.8.2

2020-01-10

애플리케이션

애플리케이션 토폴로지 위치복원 불능 문제 수정
액티브 트랜잭션 데이터 표기 오류 수정

1.8.1

2020-01-07

애플리케이션

유니크 스택 메뉴 에서 타 메뉴 이동 시 상단 메뉴 네비게이션이 전환되지 않는 문제 수정
액티브 스택 메뉴의 액티브트랜잭션/TPS 차트 시간 축이 역전되어 표시되는 문제 수정
에이전트 목록 메뉴의 에이전트 설정 에서 커스텀 옵션을 선택하여 옵션명 입력 시 입력창에서 포커스아웃되는 현상 수정

1.8.0

2019-12-27

공통

사이트맵 메뉴 이름 마우스 호버 시 메뉴 설명 기능 추가
상단 계정 메뉴 그룹에 과금 관리 메뉴 링크 추가
프로젝트 대시보드 화면 Safari 브라우저 스타일 개선
프로젝트 목록의 리스트뷰 모드 중 컨테이너 프로젝트에서 수집 중인 주요 지표를 표시하도록 개선
일부 화면에서 상단 문의하기 기능이 작동하지 않는 현상을 수정

애플리케이션

에이전트 목록 쓰레드 목록/덤프 에서 쓰레드 조회 새로고침 기능 추가
프로젝트 대시보드 내 액티브트랜잭션 차트를 클릭하여 조회한 애플리케이션 선택 사항을 새로고침 후에도 유지하도록 개선
트랜잭션 프로파일 화면 크기에 맞게 프로파일 다이어그램 차트 크기 갱신
트랜잭션 프로파일 내 통계 링크 클릭 시 트랜잭션 시작 시간 기준 해당일의 동일 서비스(URL) 트랜잭션 통계 분석 화면 제공
Chrome 최신 버전(79.0+)에서 트랜잭션 프로파일이 나타나지 않는 현상을 수정
트랜잭션 검색 에서 타 메뉴 이동 후 애플리케이션 선택 시 전체 선택 범위에서 변경되지 않는 현상을 수정
성능 추이 에서 액티브 트랜잭션 차트의 지표 단위가 byte로 표시되는 버그를 수정
에이전트 목록 쓰로틀링 설정 에서 후보 URL 검색시 편집 중인 쓰로틀링 설정 내용이 사라지는 버그 수정
에이전트 목록 쓰레드 목록 에서 상세화면 조회시 리프레시 버튼이 없는 문제 수정

컨테이너

성능 요약 메뉴에서 화면 크기 반응형 위젯 스타일 개선
컨테이너 목록 메뉴에서 비교하기 시계열 차트의 지표별 단위 표시 내용을 수정
멀티 서비스 히트맵 메뉴에서 히트맵 드래그 후 애플리케이션 선택 오류 수정

서버

제한 상태의 프로젝트에서 서버 상세 화면 이용 제한 안내 메시지 표시

성능 태그 데이터

태그 카운트 보드 대시보드 위젯 편집 데이터 검증 로직 추가

이전 버전

이전 버전 릴리즈노트 보기

Java Agent Release Notes

Paul S.J. Kim <admin@whatap.io>

Java Agent 2.0

v2.0_18

ignore_status_set & httpc_ignore_status_set

Http Status 리턴 코드중에서 무시하고 싶은 코드를 URL단위로 설정합니다.

Transaction의 Status Code

ignore_status_set=/a/b/c:400,/a/ab/c:404

HttpCall(외부 호출)의 Status Code

httpc_ignore_status_set=/a/b/c:400,/a/ab/c:404
4xx 5xx에 대해서만 설정가능합니다. url의 통계에서 조회되는 url과 동일하게 기술해야 합니다.

v2.0_17

텍스트 전송 초기화 시각 변경

v2.0_16버전에서 에이전트 텍스트 전송 기록 reset을 한국시간 24시로 변경하였는데 다시 GMT기준 00시로 변경하였습니다.

텍스트 전송기록이 reset되어야 에이전트는 새로발생한 URL에 대한 텍스트 전송을 수행합니다.

v2.0_16

HttpCall Status기반 에러 처리

외부 httpcall을 수행한후 리턴 Status Code가 4xx혹은 5xx인경우 whatap.error.HTTPC_ERROR 로 등록하도록 변경합니다.

택스트 전송 초기화 시각 변경(한국 00시)

2.0_17에서 리셋합니다.

v2.0_15

OKHTTP3 위빙플러그인 수정

OKHTTP3위빙 플러그인 버그를 수정했습니다.

액티브트랜잭션 리스트 색깔정보

액티브 트랜잭션 조회시 색깔값을 서버로 전송하도록 정보를 추가합니다.

화면에서 에이전트 설정에 따라 지연색을 사용합니다.

JMX_THREAD_POOL_DETAIL_ENABLED 수정

쓰레드풀 사이즈 추적을 위한 jmx 로직이 jboss에서 에러 로그를 출력하여 옵션처리하고 변경합니다.

기본을 false로 수정합니다.

c3p 컨넥션 풀사이즈 추적 버그 수정

C3p 컨텍션 풀 사이즈 추적 코드의 버그를 수정했습니다.

v2.0_14

Silent Shutdown 지시파일 명변경

WHATAP_HOME에 {pid}.shutdown 파일이 생성되면 와탭 에이전트는 서버에 자신인 1분 이내에 정상 종료 할것임을 전달합니다.

이번 버전에서는 이 파일을 자동으로 삭제하도록 처리하였습니다. 그러면서 파일 명을 "whatap_{pid}.shutdown"으로 변경하였습니다.

사용자 추적 ID를 mtid로 바인딩

트랜재션 시작 에이전트 플러인 에서 아래와 같이 프로그램함으로 애플리케이션이 사용하는 txid를 와탭의 내부 mtid로 공용 할수있습니다.

HttpServiceStart.x
   $ctx.inner().customTrace("abc9812xfsf23213");

v2.0_13

쿠키기반 사용자 카운팅 조건 수정

와탭에서 사용자 수를 카운팅 할때 IP나 쿠키등을 사용합니다. 쿠키를 사용할때 쿠키 오버플로어 장애를 막기 위한 옵션이 존재합니다.

trace_user_cookie_limit=2048

trace_user_cookie_limit의 기본값이 2048에서 4000으로 변경되었습니다.

v2.0_11

BCI디버깅을 위한 덤프

hook_dump_enabled=true

hook_dump_enabled=true를 설정하면 와탭 에이전트에 의해 변경되는 클래스는 모든 덤프합니다.

${WHATAP_HOME}/classes에 수정된 파일이 모두 덤프됩니다.

어떤 클래스가 BCI에 의해 변경되었는지를 확인할 수있습니다.

Log 디렉토리에 Write권한 없을때 이상현상

Log 디렉토리에 쓰기 권한이 없는 경우에 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제어

Class View에서 상세보기 옵션

클래스의 시그니쳐를 조회할때 상세한 클래스 ByteCode내용을 확인하고자 할때 에이전트 옵션으로 설정할 수 있습니다.

view_class_detail_enabled=false

기본값은 false이고 false이면 클래스의 signature만을 확인 할 수 있습니다.

v2.0_10

SQLException의존성 제거

v2.0_01~09까지의 버전을 java9이상의 환경에서 설치할때 Exception통계를 확보하지 못하는 버그를 수정하였습니다.

httpc url에 대한 정규화 강화

외부호출 URL에대한 정규화 기능을 추가 하였습니다.

trace_httpc_normalize_prefix=/a,/b

trace_httpc_normalize_prefix에 설정된 단어로 시작되는 URL들은 prefix로 normalize 됩니다.

v2.0_09

weaving@okhttp3 버그 수정

okhttp3 위빙 컴포넌트의 버그가 수정되었습니다. 이전버전에 포함되어있는 okhttp3 컴포넌트는 버그로인해 동작하지 않습니다.

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값이 등록되어있어야 합니다.

whatap.conf
license=x49s223s812hc-x496iqddmlug9c-z4orgmapfi

키를 변경하였습니다. license -→ whatap.project.token

whatap.conf
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_path 설정
diskusage_count=2
diskusage_0_id=root
diskusage_0_path=/
diskusage_1_id=home
diskusage_1_path=/home

SybaseDB SQL 프로파일링

사이베이스 DB에 대한 SQL프로파일링이 가능합니다.

com.sybase.jdbc2.jdbc.*
com.sybase.jdbc4.jdbc.*

Byte Code Instrumentation(BCI) 예외 옵션

자바에서 성능추적이 필요한 주요 클래스들은 기본으로 BCI를 통해 수행 내용을 추적하도록 구현되어있습니다.

하지만 간혼 추적이 부적절한 클래스들이 존재할 수있는데 무시하기 위한 옵션이 있습니다.

설정예제
hook_ignore_classes=org.mariadb.jdbc.MariaDbResultSet

기준시간 이하 에러 트랜잭션 프로파일 옵션처리

profile_basetime이하는 트랜잭션은 5분당 한건의 TX만 프로파일정보를 서버로 전송합니다. 하지만 에러가 발생한 트랜잭션은 옵션으로 선택할 수있습니다.

profile_concern_error_enabled=false

profile_concern_error_enabled=true가 되면 에러가 발생한 모든 트랜잭션은 profile_basetime에 상관없이 수집합니다.

기본값은 false입니다.

기본 counter중 cputime을 초당 값으로 변경

자바 프로세스 cpu사용량을 측정하는 카운터는 2가지가 있습니다. 하나는 proc_cpu이고 다른 하나는 cputime 입니다.

proc_cpu는 시스템에서 프로세스가 차지하는 cpu %값을 표현하고 있습니다.

반면에 cputime은 프로세스가 5초동안 사용한 cpu 나노초를 수집하였습니다. 이값을 초당 밀리초(ms)값으로 변경하였습니다.

v2.0_07

버그 수정: maria 2.4.x 바인드변수 추적안됨
mariaDB jdbc driver 2.4.x에서 SQL 바인드변수의 추적이 안되는 버그 수정
사용자 카운팅시 JSESSIONID를 사용할때 키 변경가능
사용자 카운팅을 위해 JSESSIONID의 값을 사용할 수있습니다. 근데 JSESSIONID를 다른 키로 변경한경우 변경된 키를 사용할 수있도록
옵션이 추가 되었습니다. 기본값은 JSESSIONID입니다.

   trace_user_using_jsession_key=JSESSIONID

v2.0_04

버그 수정: biz_exceptions 동작 하지 않음
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 정보등이 추가되었습니다.

에이전트 로그 이름 변경

와탭 자바에이전트의 로그파일 명이 변경되었습니다.

whatap-20200301.log

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
커스터마이징 개발

와탭 사용자는 직접 위빙 플러그인을 만들 수있습니다. 만들어진 위빙에는 manifest.mf파일에 "PlugIn"과 "Build" 속성이 설정되어 있어야 합니다.

배포는 에이전트 home에 instrument 디렉토리 아래에 복사합니다.

$WHATAP_HOME/instrument

로딩은 weaving_plugin_enabled옵션에 의해 통제됩니다. 기본값은 true입니다.

weaving_plugin_enabled=true

트랜잭션 쓰로틀링 Reject html 임베드

사용자 요청을 제한하기 위한 쓰로틀링 기능에서 사용자 안내 페이지를 와탭 에이전트에 임베드하였습니다.

notice.html
notice.json

notice.html을 활성화 하기 위해서는 옵션을 추가합니다.

throttle_rejected_html=notice.html
notice
notice.html을 편집하여 사용합니다.

사용자 커스텀 카운팅 기능 추가

시스템의 접속 사용자를 임의로 그룹핑하여 카운팅 하기 위한 기능들이 추가 되었습니다.

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

Weaving 기본 플러그인

Weaving 플러그인은 ${WHATAP_AGENT}/instrument에 배포합니다. 하지만 자주 사용되는 플러그인은 agent 내부에 포함시켰습니다.

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정보가 추가 되었습니다.

v1.9.3

2019-12-20

agent jar를 rename해주는 유틸리티 추가되었습니다.

java -cp whatap.agent-1.9.2.jar whatap.agent.setup.Rename

ignore url에 대해서는 Exception추적을 하지 않도록 변경하였습니다.

v1.9.1

2019-12-11

버그수정

일부 서비스에서 ignore_exception옵션이 적용안되는 문제 수정되었습니다.

v1.9.0

2019-10-29

버그수정

백그라운드 쓰레드에 대한 액티브 스택 추적관련 기능에서의 버그를 픽스했습니다.

관련 옵션
async_thread_match
async_thread_parking_class
async_thread_parking_method

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를 사용하여 기능을 on/off할 수 있습니다.
trace_socket_timeout_enabled=false
socket timeout
Figure 4. Socket Timeout 에러

2019-09-04

Weaving 플러그인 로딩시 메소드의 access 정보를 orginal 메소드의 access로 맞춥니다.

v1.8.7

2019-08-30

플러그인 추가

Akka모니터링을 위한 Weaving 플러그인이 추가되었습니다.

Weaving플러그인은 메일로 문의하면 별도로 제공합니다.

버그수정

  1. 사용자지정 카운터에서 5분 요약 데이터 관련 버그 수정하였습니다.

  2. 쓰로틀링 처리시 안내페이지로의 전달에 대한 버그 수정되었습니다.

v1.8.6

2019-08-20

비즈니스 모니터링 추가

bizmon_enabled=true 옵션이 추가되었습니다. 이 옵션이 whatap.conf에 설정되면 에이전트에서는 profile_basetime에 의해 버려지는 트랜잭션 정보와 액티브트랜잭션 정보를 요약하여 수집 서버로 전송합니다.

bizmon_enabled=true

파일디스크립터 카운트 수집

자바 성능 카운트에서 파일 디스크립터 수를 수집합니다.

버그 픽스

  1. DateUtil에서 영문 목요일 정보 수(Thu)를 수정하였습니다.

  2. SQL을 수집할때 "/"연산이 사용된 경우 누락되는 버그 수정되었습니다.

  3. 비즈니스 모니터링 관련 다수의 버그가 수정되었습니다.

v1.8.5

2019-08-07

Open File Descriptor 모니터

자바 프로세스가 오픈한 file descriptor 수를 모니터링 합니다.

counter_procfd_enabled=true

모니터링을 원하지 않으면 counter_procfd_enabled=false를 설정할 수 있습니다.

 proc_fd : OpenFileDescriptorCount
 proc_fd_max :MaxFileDescriptorCount

v1.8.4

2019-08-05

Heap Old Gen GC 발생 건수 모니터링

Heap Memory 중에서 old-gen 영역에서 발생하는 GC 건수를 별도 지표로 수집합니다.

gc_oldgen_count

Heap Max 모니터링

heap에는 used , total과 더불어 max값이 관리되고 있습니다. -Xmx 옵션을 사용하면 heap max를 수정할수 있습니다.

heap_max

v1.8.3

2019-07-19

트랜잭션 응답 구간별 건수지표 추가

트랜잭션 종료 건수중에서 3초이상 8초이상 종료 건수를 별도로 성능지표로 추가하였습니다.

트랜잭션 over3

3초이상 트랜잭션 건수

트랜잭션 over8

8초이상 트랜잭션 건수

v1.8.2

2019-07-19

트랜잭션 상세 응답 시간 추가

트랜잭션의 응답시간중 SQL,DBC, HTTPCall에 소비된 시간을 측정한 성능지표가 추가되었습니다.

트랜잭션 DB 연결시간

트랜잭션 수행중 DB연결에 사용된 시간의 평균값

트랜잭션 SQL시간

트랜잭션 수행중 SQL 수행에 사용된 시간의 평균값

트랜잭션 HTTPC시간

트랜잭션 수행중 외부 HTTP CAll 수행에 사용된 시간의 평균값

v1.8.1

2019-06-25

Weaving Plugin

파라미터를 가진 생성자에 대한 Weaving이 가능하게 변경

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,*

JMX 모니터링 확장

whatap.conf에 아래와 같이 추가 설정파일을 지정합니다. 여기서는 "myjmx.conf"를 지정하였습니다.

perfx_config=/usr/local/myjmx.conf

myjmx.conf에 모니터링 하고자 하는 ObjectName을 지정하고 키값으로 (ex tomcat_executor) 데이터 카테고리 명을 설정합니다.

myjmx.conf
tomcat_executor=Tomcat:type=Connector,*

v1.8.0

2019-06-25

Weaving Plugin

Java Agent 1.8 부터는 데이터 추적을 커스터마이징하기 위한 Weaving Plugin을 제공합니다.

자세한 내용은 별도 문서로 제공됩니다.

ConfBase 서버

다수의 애플리케이션 인스턴스에 에이전트가 설치되면 설정을 통합 관리할 필요가 발생합니다. 이 문제를 해결하기 위해 ConfBase 에이전트를 추가하였습니다.

Java Agent 1.7

v1.7.8

2019-06-118

EDB Master/slave환경에서 DB연결 정보

EDB에서 마스터/슬레이브 환경에서는 실제 연결된 DB정보를 알 수없는 문제가 있습니다. 이 문제를 해결하기 위해 옵션이 추가되었습니다.

jdbc_edb_multi_url_enabled=false

jdbc_edb_multi_url_enabled를 true로 설정하면 EDB jdbc드라이버에서 SQL실제 수행된 위치를 확인 할수 있습니다.

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

GC LOG 수집 기능

GC Log를 와탭에 새로 추가되는 로그 수집기능을 이용하여 GC 로그 전체를 수집하도록 합니다.

 gclog_enabled=false
 gclog_check_interval = 2000
 gclog_file=null

gclog_file에 등록된 파일을 읽어서 서버로 전송합니다. 기능을 활성화 하려면 gclog_enabled=true가 설정되어야 합니다.

JAVA9 이상에서 sigar_enable=false

와탭 에이전트는 기본으로 sigar모둘을 이용하여 자원 사용량을 수집합니다. 그런데 java9모듈에서는 기본값을 false로 수정합니다.

sigar_enabled=false

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의 데이터를 수집합니다.

라인 파서를 등록해야 합니다.라인파서는 플러그인으로 등록합니다.

ShellPerf.x
//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.3

2019-03-14

AWS ECS 컨테이너 CPU/MEM

-Dwhatap.ecs.enabled=true

AWS ECS환경에서 whatap.ecs.enabled옵션과 함께 WhaTap을 실행하면 AWS API를 사용해 자원 사용량을 수집합니다.

cpu, cpu sys, cpu usr, mem 을 수집합니다.

v1.7.2

2019-02-24

Play2 프레임워크에서 Throttling

throttle_play2reject_classes=
throttle_play2reject_supers=
throttle_play2reject_interfaces=
throttle_play2reject_ignore_methods=

비동기 프레임워크인 Play2 환경에서 Throttling 기능을 추가하였습니다. Play2 에서는 Throttling 제어를 URL이 아닌 Class로 동작 하게 됩니다.

whatap.error.STATUS_ERROR 비활성화

transaction_status_error_enable=

whatap.error.STATUS_ERROR 로 인한 트랜잭션 에러를 제외할 수 있는 기능이 추가되었습니다.

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
stat_mtrace
stat_mtrace_enabled=false
stat_mtrace_max_count=7000

Caller와 Callee의 상관 관계 통계를 수집하는 기능입니다. Caller쪽에 enable되어있으면 Caller의 상세 정보를 보내주고 Callee쪽에 enable되어있으면 Caller-Callee 호출관계를 url 수준에서 통계를 만들어 수집서버에 전송합니다. 데이터는 "x-wtap-sp" 키로 전송됩니다.

mtrace_callee_txid_enabled
mtrace_callee_txid_enabled=false

Callee의 txid를 Caller가 보내주는 기능을 enable합니다. txid를 보내는쪽과 받는쪽의 기능을 모두 활성화합니다. txid는 "x-wtap-tx"로 전송됩니다.

OKIND 추가

oid를 그룹핑하기 위해 OKIND라는 개념이 추가되었습니다.

 -Dwhatap.okind=salse
 혹은
  whatap.okind=sales
운영중에는 변경하지 않도록 합니다. 필요하면 JVM환경변수로 설정하기를 권고합니다.

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옵션에 지정한 인덱스이 파라미터를 서비스 명으로

HttpServiceStart.x 플러그인에 함수 추가

Http Request Content타입을 조회하고 확인하기 위한 함수 추가

$req.getContentType();
$req.isMultipartContent(String);
$req.isFormUrlencoded(String);

Agent Boot 정보 개선

에이전트 boot 정보에 uptime 추가

v1.6.1

BizException 통계 제외

로직 처리를 위한 Exception 발생시 에러 통계에서 제외합니다.

whatap.conf
biz_exceptions=a.b.MyException,a.b.YourException

설정된 Exception이 발생해면 아래 처럼 처리 됩니다.

  1. 통계에서 제외

  2. HitMap에서 정상표시

  3. 프로파일 상세보기에 에러 표시

Auto Thread Kill

응답시간이 지정한 수준을 넘어서면 자동으로 쓰레드를 Stop시키는 기능이다.

whatap.conf
auto_thread_kill_elapsed = 0
auto_thread_kill_warning_enabled = true
auto_thread_kill_event_interval = 1000

매 5초마다 지정된 시간 이상 수행중인 트랜잭션에 대해서 자동으로 쓰레드 Stop을 수행합니다.

auto_thread_kill_elapsed > 0 이면 기능이 활성화 됩니다.

v1.6.0

SAP3 모니터링 기능 추가

에이전트 옵션 설정 필요 (재기동 필요) .whatap.conf

hook_httpc_sap3_enabled=true

sapjco3-3.0.14.jar를 사용하여 테스트 했습니다.

아파치 SOAP 추적

HttpCall에 아파치 SOAP에 대한 추적 추가 합니다.

  org/apache/soap/rpc/Call

addin monitor 설정 방법 추가

addin module jar 파일들을 복사합니다.

 ${WHATAP_AGENT}/addin/.

다음은 addin monitor클래스를 설정하는 방법입니다. 먼저 갯수를 지정합니다. 그리고 갯수 범위(addin_monitor_num)내에서 addin_monitor_x= 형태로 설정합니다.

whatap.conf
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.5

v1.5.9

AddinCount 수집기능

  • AddinCount 기능 추가

년간 데이터 수집 기능 추가

v1.5.7

주요 수정 내용

  • 에이전트 암호키에 trim 처리

  • 자등 쓰로틀링 처리를 위해 대상 URL 추출 기능

  • GC 로그 모니터링 기능 추가

Java Agent 1.3

v1.3.4

Altibase Old 버전 SQL 추적

에이전트 소스에 추가된 클래스
hook_jdbc_pstmt_classes=Altibase5/jdbc/driver/ABPreparedStatement
hook_jdbc_stmt_classes=Altibase5/jdbc/driver/ABStatement
hook_jdbc_rs_classes=Altibase5/jdbc/driver/ABResultSet

v1.3.3

Active Status

차트를 클릭하면 아크이퀄라이저 클릭에 연결된 페이지로 이동 데이터 종류(이퀄라이저) ⇒ Method, Sql, HttpC, DBC, Socket 으로 고정 자바에이전트 1.3.3이후 버전에서만 동작됨으로 데이터가 없는 경우에는 이미지를 출력한다. 더미 이미지에는 java1.3.3이후버전에서 사용가능하다는 메세지 10pt 폰트로 추가함

Active Status

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메소드의 짝이 맞는지를 추적하는 기능입니다.

whatap.conf
hook_custom_open_patterns=""
hook_custom_close_patterns=""
profile_custom_leak_enabled=true
whatap.conf
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

Java9지원

java9가 되면서 JDK내부에 클래스 의존성이 많이 수정되었다. 기존 버전을 설치하면 참조오류가 발생한다. v1.2.5부터 java9에서 애플리케이션을 모니터링 할 수있다.

DBCP & WEBLOGIC10 Connection Pool 기본 추적

DBCP와 웹로직10.3의 컨넥션 풀사이즈가 기본적으로 모니터링된다. 관련 기능을 off하려면 아래 옵션 값을 수정하고 WAS를 재기동하면된다.

dbcp_pool_enabled=true
weblogic_pool_enabled=true

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

에이전트 로그 조회

에이전트 로그를 조회할 수있다. java agent v1.2.1이상에서만 동작한다.

메뉴
APM(java) > 서버 > 더보기 > 에이전트 로그

화면이 열리면 에이전트에 저장된 로그 리스트가 보인다. 데이터를 확인하고자 하는 로그를 클릭하면 로그를 볼 수 있다.

로그 내용 상단에 [<<] [ < ] [ > ] [>>] 4개의 이동버튼을 통해 로그를 조회한다.

 [ <<] - 로그 시작 부분으로 이동
 [ < ] - 8KB 이전으로 이동
 [ > ] - 8KB 다음으로 이동
 [ >>] - 로그 파일 끝으로 이동

에이전트 덤프 조회

에이전트에서 생성한 쓰레드덤프 혹은 CPU 프로파일 덤프 파일을 조회할 수 있다. > 단) java agent v1.2.1이상에서만 동작한다.

메뉴

APM(java) > 서버 > 더보기 > 에이전트 덤프

화면이 열리면 에이전트에서 생성된 덤프파일 리스트가 보인다. 파일명을 클릭하면 덤프 내용을 확인할 수있습니다.

v1.2.0

CPU 과점 쓰레드 덤프

WAS 프로세스의 CPU가 높을때 어떤 쓰레드가 CPU를 많이 사용하는지 찾기 위해 쓰레드 덤프를 연속적으로 수행하는 기능입니다.

whatap.conf
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의 장애가 발생하여 액티브트랜잭션이 증가하면 자동으로 전체 쓰레드를 덤프하여 향후 문제 분석에 활용합니다.

whatap.conf
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)

웹 요청이 폭주할경우 초과 요청을 다른 페이지로 넘길 수있다. 쓰로틀링에서 특정 타겟팅 페이지만 제어하는 기능이 추가되었다.

whatap.conf
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를 사용하여 사용자를 측정하도록 변경하였습니다.

whatap.conf
trace_user_using_ip = true

만약 이전처럼 쿠키를 기반으로 사용자를 측정하고자 한다면 위 옵션을 false로 변경해 주어야 한다.

DB 연결 카운팅

whatap.conf
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

트랜잭션별 메모리 할당 추적기능 OFF

트랜잭션별로 메모리 할당 량을 추적하는 기능을을 default로 false되었다.

PHP Agent Release Notes

임재환 <jhlim@whatap.io>

PHP Agent 0.8.4

2020-11-11

버그

segmentaion 오류 수정

cURL 라이브러리 사용에 대한 프로파일 과정에서 간헐적으로 Request 종료 시점에 segmentaion 가 발생합니다.
오류가 발생하는 경우 응답시간이 5분이 넘는 "Lost Connection" 트랜잭션이 발생합니다.

업데이트

HTTP Header 정보 수집 변경

HTTP Header 이름을 지정해서 수집 정보에서 제외 시키는 기능을 추가했습니다.

whatap.profile_http_header_ignore_keys

Default : "host,accept,user-agent,referer, accept-language, connection"
Type : string

지정된 HTTP Header 이름의 값은 수집에서 제외 되며, "#"으로 표기 됩니다.

http header

PHP Agent 0.8.3

2020-10-28

버그

sql 구문 수집

sql이 길이가 너무 긴 경우 간헐적으로 수집이 안되는 오류를 수정했습니다.
(sql은 최대 수집길이는 32 kb 까지입니다. 더 긴 sql 구문은 32kb 까지 잘라서 수집합니다.)

cURL 실행 시간 수집

curl_exec 함수 호출에 curl resource 파라메터가 없을 때 경과시간이 비정상으로 수집되는 오류를 수정했습니다.

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

apdex

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 : Boolean

True : 라이브러리 함수의 결과가 False 일때 오류로 표기하는 기능을 활성화.

예) whatap.profile_redis_return_enabled=true

whatap.profile_[라이브러리 이름]_error_info_enabled

Default : True
Type : Boolean

True : 라이브러리 함수의 결과값이 False 일때 에러 메세지 정보 수집하는 기능을 활성화
위 return_enabled 설정이 false 인 경우는 적용되지 않습니다.

예) whatap.profile_redis_error_info_enabled=true

whatap.profile_[라이브러리 이름]_error_ignore_empty

Default : True
Type : Boolean

False :오류 코드 또는 오류 메세시 내용이 없을 때 정상 결과로 표기.
위 return_enabled 설정이 false 인 경우는 적용되지 않습니다.

예) whatap.profile_redis_error_ignore_empty=false

PhpRedis 라이브러리는 기본값이 False 입니다. 오류메세지가 없는 경우 정상으로 표기합니다.
dbconnectionreturnfalse
sqlreturnfalse

멀티 트랜잭션 추적

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)의 발급비율을 설정하는 옵션입니다.

multi trace

클라이언트 아이피

클라이언트 아이피 수집 옵션을 추가했습니다.

  • HTTP Headr 에 x_forwarded_for 키가 존재할 경우 해당 값으로 클라이언트 아이피를 설정합니다.

  • 그 외에는 기본 Remote IP로 클라이언트 아이피를 설정합니다.

x_forwarded_for 키가 있어도 Remote IP값으로 설정할 수 있도록 옵션을 추가했습니다.

whatap.trace_http_client_ip_header_key_enabled

Default : True
Type : Boolean

False 로 설정하면 HTTP Header 는 무시하고, Remote IP 값으로 클라이언트 아이피를 설정합니다.

PHP Agent 0.8.1

2020-08-19

버그

PHP Cli

PHP Cli 실행 완료 후 메모리 정리 중에 발생하는 segmentaion 오류 수정했습니다.

업데이트

CUBRID 지원

CUBRID 서버를 지원합니다.

cubrid

SQL, DB Connection, Http call 처리 결과 수집

DB Connection, SQL, cURL 함수의 실행 결과가 Boolean(False)일 경우는 실행 중에 오류가 발생한 것으로 간주하여 프로파일링 정보에 오류 정보를 표기합니다.

임의의 에러 타입으로 설정합니다.
DBConnectionReturnFalse, SQLReturnFalse, HttpConnectionReturnFalse

dbconnectionreturnfalse
sqlreturnfalse
httpconnectionreturnfalse

PHP Agent 0.8.0

2020-07-24

버그

Sqlsrv (MS-SQL)

sqlsrv_connect 함수를 사용할 때 connectionInfo가 전달 되지 않으면 발생하는 segmentaion 오류를 수정하였습니다.

업데이트

Phpredis

기존에 함수명(get, set …​)만 표기되던 것을 전달인수를 SQL 구문처럼 표기합니다.

redis v2
redis v2 1
redis v2 2

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 연결 시 오래된 정보부터 삭제 됩니다.

multi db 0

PHP Agent 0.7.2

2020-06-03

버그

SQL문의 주석 삭제

숫자값이 삭제되지 않고 남아있는 오류를 수정하였습니다.

아래 설정을 false일 경우 주석을 제외한 SQL 문을 수집합니다.

whatap.profile_sql_comment_enabled

Default : false
Type : Boolean

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의 재시작 후 적용됩니다.

Redis(phpredis extension) 지원

Redis 서버를 지원합니다.
Redis 연결에 사용된 함수이름을 SQL 구문으로 사용합니다.

수집 함수

  • Redis::connect, Redis::pconnect

  • Redis::set, Redis::get

  • Redis::mset, Redis::mget

  • Redis::command, Redis::rawcommand

redis

SQL문의 주석 삭제

수집하는 SQL 문의 주석을 삭제합니다.
설정을 통해 주석을 포함하거나 삭제 할 수 있습니다.
아래 설정을 false일 경우 주석을 제외한 SQL 문을 수집합니다.

whatap.profile_sql_comment_enabled

Default : false
Type : Boolean

버그

클라이언트 아이피

x-forwarded-for 아이피가 여러개일 경우에도 client ip를 정상적으로 수집하도록 수정했습니다.

액티브 스테이터스

액티브 스테이터스 수집 기능을 보완했습니다. 추가로 일정 간격으로 초기화하는 기능을 추가 했습니다.
공유 메모리 사용으로 PHP 내부와 에이전트에서 수집되는 정보에 차이가 발생할 수 있어 초기화 기능을 추가했습니다.

웹 프로세스 사용 메모리

웹 프로세스의 사용 메모리 정보 수집 기능을 개선했습니다.

PHP Agent 0.7.0

2020-02-19

업데이트

PHP 7.4 지원

PHP 7.4 버전을 지원합니다.

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로 설정합니다.
active status

동적 설정 기능

기존에 사이트 에이전트 설정 메뉴에서 설정을 추가 또는 변경하여도 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 함수의 추적 여부를 설정합니다.
PHP 내부 함수인 compile_file, compile_string 함수는 스크립트 실행 전에 컴파일하는 함수로 Main, include, require 및 autoload 스크립트의 컴파일 시점을 확인할 수 있습니다. 스크립트 파일 경로와 실행시간을 확인할 수 있습니다

트랜잭션 리퍼러

통계로 수집되는 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)

트랜잭션 추적 제외 설정

특정 URL을 설정하면 트랜잭션 추적 대상에서 제외됩니다. 설정된 URL은 트랜잭션 정보를 수집하지 않아, 트랜잭션 목록에서 확인되지 않습니다.

trace_ignore_url_set

Default : 0
Type : String
트랜잭션 추적 대상에서 제외할 URL을 지정합니다. 여러개를 지정할경우 콤마(,)로 구분합니다.

trace_ignore_url_prefix

Default : 0
Type : String
트랜잭션 추적 대상에서 제외할 URL prefix를 지정합니다.

x-forwarded-for

클라이언트 아이피를 수집하는 설정의 기본값을 x-forwarded-for 헤더로 변경합니다.
우선적으로 x-forwarded-for 값을 찾고, 없으면 REMOTE_ADDR 을 사용합니다.

whatap.trace_http_client_ip_header_key

Default : X_FORWARDED_FOR
Type : String

버그

Http Method

Http Method 정보를 수집하지 못해 모두 GET으로 표기되던 문제를 수정했습니다.

PHP Agent 0.5.0

2019-11-05

업데이트

에이전트 성능 옵션

0.4.12 버전의 에이전트 성능 옵션을 다시 적용했습니다.

SqlSrv 라이브러리 지원

MS-SQL 연결을 위해 SqlSrv 라이브러리의 프로파일링을 추가했습니다.
MS-SQL 연결을 위한 프로파일링은 msssql, sqlsrv을 지원합니다.

버그

에이전트 네이밍

동일한 사설 네트워크를 가진 여러대 서버환경에서 에이전트 이름이 중복되어 에이전트 목록에 표기되지 않는 문제가 있습니다.
에이전트 이름을 결정하는 조건에 활성화된 전체 아이피의 정보를 추가하여 중복을 피하도록 수정하였습니다.

전체아이피 정보는( {ips} 항목 ) 기본 설정으로 제공됩니다.

whatap.object_name={type}-{ip2}-{ip3}-{process}-{dockerid}-{ips}

전체 아이피에 대한 정보는 관리 > 애플리케이션 에이전트 목록 > 환경 에서 확인할 수 있습니다.

whatap.ips

PHP Agent 0.4.13

2019-11-15

버그

0.4.12 버전 에이전트에서 whatap-php 서비스의 메모리 사용량이 점차적으로 증가되는 오류가 발견되었습니다. 문제가 되는 에이전트 성능 옵션 적용을 중지하였습니다.

0.4.12 버전의 에이전트 성능 옵션은 오류 해결 후에 다시 적용할 예정입니다.

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.11

2019-10-23

업데이트

Netstat 토폴로지

애플리케이션 관점의 리스닝 IP, Port 정보와 아웃바운드 호출 관점의 정보를 다이어그램으로 표현합니다.

netstat topology

버그

biz_exception 설정

biz_exception 설정한 에러 항목이 히트맵에서 에러로 표시되는 문제를 수정했습니다.
설정된 에러 도는 예외는 히트맵에서는 표시되지 않고, 통계에서 조회가 가능합니다.

PHP Agent 0.4.10

2019-09-18

버그

HTTP 외부 호출 수집 오류

HTTP 외부 호출 정보 수집 중 발생하는 오류를 수정하였습니다.

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

버그

서버 > 에이전트 상태

에이전트의 상태에서 Cpu, Memory 정보가 출력되지 않는 문제를 수정했습니다.

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
compile file
whatap.profile_compile_file_basetime을 너무 빠르게 설정하면 서버에 부하를 줄 수 있습니다.
Apache 및 PHP-FPM의 재시작 후 적용됩니다.

버그

Postgresql(PDO) 연결문자열 password 항목 표시 오류

PDO 라이브러리를 사용하여 Postgresql 서버에 접속할 때 필요한 연결문자열 중 password 항목의 값이 수집되는 오류를 수정했습니다. 연결문자열 중 password 항목의 값은 "#" 문자로 변환되어 수집합니다.

PHP Agent 0.4.7

2019-03-15

버그

에이전트 상태 확인 기능 오류

서버 > 에이전트 > 더보기 메뉴 기능에서 에이전트 상태 값을 불러오지 못하는 오류를 수정하였습니다.

PHP Agent 0.4.6

2019-03-14

업데이트

지원 환경이 추가 되었습니다.

PHP 7.3(NTS, ZTS) 버전에서 모니터링이 지원됩니다.

토폴로지 기능 추가

아래 옵션 설정 시 조회 가능합니다. 기본값은 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
topology app
  • 그룹 토폴로지는 에이전트를 통합하여 관계를 표현합니다. whatap.okind 설정 값으로 공통 이름을 설정하면 통합하여 표현합니다.

; 그룹 토폴로지를 위해 에이전트의 그룹명을 임의로 설정합니다.
whatap.okind=PHP-DEMO
topology group

멀티 서버 트랜잭션 (트랜잭션 연계 추적) 기능 업데이트

옵션을 세분화 했습니다. 옵션으로 멀티 서버 트랜잭션 추적을 활성화 할 수 있습니다. 별도 설정이 없는 경우 추적하지 않습니다.

; 멀티 서버 트랜잭션에서  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을 재시작 하여야 적용됩니다.

버그

Apache MPM Event 방식 설치 오류 수정

Apache MPM Event 환경에서 PHP Extension 모듈이 zts 가 아닌 nts 모듈로 설치되는 오류를 수정하였습니다.

HTTP Header 정보 크기 제한

Host, Uri, User-Agent, Referer, Remote-Ip 등의 기본 HTTP Header 정보를 수집할 때 길이가 너무 길 경우 발생하는 오류를 수정하였습니다. Remort-IP, Metho 정보는 256byte, 나머지 Host, Uri, User-Agent, Referer 정보는 2048byte 까지 수집합니다.

PHP Agent 0.4.5

2018-12-11

업데이트

멀티 서버 트랜잭션 (트랜잭션 연계 추적) 기능 추가

서비스(업무) 별로 분리 되어 있는 애플리케이션 서비스들간의 호출을 추적할 수 있습니다.
와탭에 등록되어 있는 프로젝트라면 프로젝트에 등록된 애플리케이션 서비스들간의 호출에 대한 추적을 말합니다.
멀티서버 트랜잭션 추적 옵션을 설정한 경우에 한하여 트랜잭션 연계 추적이 가능합니다.

외부 호출 시에 지정된 헤더를 추가하는 것으로 트랜잭션 연계 추적이 가능합니다.

에이전트 설치시 같이 제공되는 PHP 라이브러리를 통해서 설정 가능합니다.
/usr/whatap/php/lib/WhaTap.php
/usr/whatap/php/lib/sample_mtrace.php
아래 예제는 cURL의 사용자 헤더를 설정하는 소스 입니다.
<?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);

트랜잭션 상세보기에서 확인할 수 있습니다.

mtrace_tx_detail
Figure 5. 트랜잭션 상세보기
mtrace detail
Figure 6. 멀티 트랜잭션 상세보기

멀티 서버 트랜잭션 통계

멀티 서버 트랜잭션 통계를 확인할 수 있습니다.

아래 옵션 설정 시 조회 가능합니다. 기본값은 false 입니다.

whatap.stat_mtrace_enabled=true

통계 > 트랜잭션 통계 > 트랜잭션 호출자

mtrace stat
Figure 7. 멀티 서버 트랜잭션 통계

PHP Agent 0.4.4

2018-11-12

업데이트

FreeBSD 지원

FreeBSD 10.x 이상 64bit 운영체제를 지원합니다.

Domain(Host) 통계

도메인별 통계를 확인할 수 있습니다.

whatap.stat_domain_enabled=true

Referer 통계

리퍼러별 통계를 확인할 수 있습니다.

whatap.stat_referer_enabled=true

PHP Agent 0.4.3

2018-08-29

업데이트

HTTP 헤더 수집

HTTP 헤더 수집 기능을 추가하였습니다. HTTP 헤더의 이름 과 값을 수집합니다. 최대 20개를 수집하며 파라메터 이름과 값은 최대 256 byte 까지 수집됩니다.

설정 옵션은 아래와 같습니다.

# 헤더 정보 수집 여부, Default: false (true,false)
whatap.profile_http_header_enabled=true
해당 옵션은 Apache 또는 PHP-FPM을 재시작 하여야 적용됩니다.

x-forwarded-for

Client IP(Remote IP)의 정보를 특정 HTTP 헤더의 값으로 변경하여 설정하는 기능을 추가하였습니다. Proxy(프락시) 환경에서 X-Forwarded-For 헤더 값을 Client IP 로 설정할 수 있습니다.

설정 옵션은 아래와 같습니다.

# Client IP 설정 헤더 키, Default: ""
whatap.trace_http_client_ip_header_key=x-forwarded-for
해당 옵션은 Apache 또는 PHP-FPM을 재시작 하여야 적용됩니다.

버그

segmantaion fault

HTTP 파라메터 수집 중 파라메터 타입이 배열인 경우 segmantaion fault 가 발생한 오류를 수정하였습니다.

PHP Agent 0.4.2

2018-08-23

버그

segmantaion fault

HTTP 파라메터 수집 중에 segmantation fault 발생하는 오류 수정하였습니다.

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을 재시작 하여야 적용됩니다.

에이전트 상태 조회

whatap-php 서비스 데몬의 상태를 확인할 수 있는 기능이 추가되었습니다.
최근 1일간의 CPU 사용율, Memory 사용량, 네트워크 발송량을 그래프로 확인할 수 있습니다.

서버 → 더보기 → 에이전트 상태 메뉴에서 확인할 수 있습니다.

버그

에이전트 실행 중 좀비 프로세스 발생

whatap-php 서비스 데몬 실행 중에 좀비프로세스가 발생하는 오류를 수정하였습니다.
수집서버와 처음 연결하는 과정에서 호출되는 쉘 스크립트에서 발생하였습니다.

PHP Agent 0.4.0

2018-07-17

버그

segmantion fault

segmantion fault 오류를 수정하였습니다.
Apache graceful restart 시점에서 모듈 종료 중에 발생하는 오류를 수정하였습니다.

PHP Agent 0.3.9

2018-07-09

버그

SQL

구문의 길이가 너무 길 경우 발생한 segmantion fault를 수정하였습니다.
최대 32kb 까지만 수집하고, 앞에 “[QUERY TOO LONG]” 구문으로 표기합니다.

PHP Agent 0.3.8

2018-06-19

업데이트

Postgresql 지원

PHP Extension psql 라이브러리를 지원합니다.

버그

5.2버전 segmantation fault

5.2 버전의 Segmantaion fault 오류를 수정하였습니다.

PHP Agent 0.3.7

2018-04-24

업데이트

Goole App Engine 지원

Google App Enging 의 환경(app.yaml)을 flex/ custom 으로 설정 합니다.

app.yaml
env: flex
runtime: custom

app.yaml 과 같은 위치에 Dockerfile 을 생성하고 아래 내용을 추가 합니다.
PHP 버전 변경은 FROM 이미지를 변경하시면 됩니다.

Dockerfile
# 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.6

2018-04-10

업데이트

한글 URL에 대한 디코딩을 추가했습니다.

버그

  • ZTS 환경에서 Segfault 오류가 발생하는 문제를 수정하였습니다.

  • 사용자 토큰 수집에서 PHPSESSID 수집 로직이 누락되어 있던 부분을 수정하였습니다.

PHP Agent 0.3.5

2018-03-15

업데이트

에이전트 로그

사이트에서 원격으로 에이전트 로그를 확인할 수 있는 기능이 추가되었습니다. 사이트의 서버 > 더보기 > 에이전트 로그 항목에서 확인 할 수 있습니다.

버그

segmantation fault

PHP Class 라이브러리를 통한 User Step 설정 중에 발생하는 segmantation fault 를 수정했습니다.

PHP Agent 0.3.4

2018-02-13

버그

Oracle

Oracle 모듈 (oci8)의 Alias Function(ocilogin, ociparse 등)에 대한 프로파일링 정보가 수집되지 않는 부분 수정되었습니다.

PHP Agent 0.3.3

2018-01-25

업데이트

PHP 7.2

PHP 7.2 지원이 추가되었습니다.

버그

PHP 5.2

PHP 5.2 + Zend Optimizer 환경에서 프로파일링 정보가 잘못 수집되는 부분이 수정되었습니다.

PHP Agent 0.3.2

2017-12-06

업데이트

MSSql

Linux 용 Mssql 라이브러리 지원이 추가 되었습니다.
Mssql 라이브러리를 사용하는 데이터베이스 접속, 쿼리 및 프로시져 에 대한 프로파일링 정보를 수집합니다.

db mssql

버그

Apache 웹서버를 대상으로 선택 설치(install.sh manual)하는 경우에 apachectl 명령어를 잘못 인식하는 부분이 보완되었습니다.

PHP Agent 0.3.1

2017-11-23

업데이트

Oracle 지원

Oracle oci8 라이브러리 지원이 추가 되었습니다.

메소드 프로파일

메소드 프로파일 기능이 추가되었습니다.
실행시간이 1초를 초과하는 사용자 함수의 정보를 트랜잭션 상세 정보에서 확인 할 수 있습니다.
기본 설정은 true 입니다.
whatap.ini 에 해당 설정을 추가 합니다. (PHP 컴파일 설치로 php.ini 에 추가해야 할 수도 있습니다. )

step method
whatap.profile_method_enabled=true
해당 옵션은 Apache 또는 PHP-FPM을 재시작 하여야 적용됩니다.

DB 오픈 정보

DB 오픈 정보를 수집하는 기능이 추가 되었습니다.
DB 오픈 실행 시간 및 연결 정보를 수집합니다.

step db open

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();
?>
step user

Socket

Socket 연결정보를 수집하는 기능이 추가되었습니다.
socket_connect(), fsockopen() 함수에 대해서 연결 정보를 수집합니다.

PHP 모듈 의존성

서버의 PHP 의 설치 모듈 정보를 수집하는 기능이 추가 되었습니다.
서버 > 더보기 > 모듈 의존성 메뉴에서 설치 모듈 정보를 확인 할 수 있습니다.

버그

SQL

SQL 구분의 파라메터 정보를 일반화 하는 과정에 특정 문자(", \', '', '") 를 추가하였습니다

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 에 추가해야 할 수도 있습니다. )

버그

트랜잭션 에러

트랜잭션의 에러 정보가 통계로 수집 되지 않는 문제를 수정했습니다.

로그

동일한 로그가 반복적으로 출력되어 Disk IO 점유율이 높아지는 문제를 수정했습니다. 동일한 로그는 정해진 시간 안에 한 번만 출력 되도록 수정되었습니다.

설치 문제를 보완하였습니다.

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.7

2017-09-06

업데이트

File 정보

File Open 정보를 수집합니다.

버그

SQL

SQL 파라메터 일반화 중 쌍따옴표을 인식하지 못하는 오류를 수정하였습니다.

메모리 오류

PHP 7.0 이상에서 발생하는 메모리 오류를 수정하였습니다.

PHP Agent 0.2.6

2017-09-19

업데이트

SQL 파라메터 조회

일반화 되어 `#`으로 처리되는 SQL 파라메터럴 조회할 수 있는 기능을 추가하였습니다. /usr/whatap/php/paramkey.txt 상에 설정된 키를 이용하여 트랜잭션 상세정보에서 해당 SQL 파라메터를 확인 할 수 있습니다.

에러 및 예외 처리 정보

Error 또는 Exception 정보를 메세지 스탭으로 전달. 사이트 상에 트랜잭션 상세보기에서 Error 또는 Exception 의 상세 정보를 확인 할 수 있습니다.

HTTP 외부 콜

cURL을 통한 multi call에 대한 지원을 추가하였습니다.

PHP Agent 0.2.5

2017-08-29

업데이트

설정 메뉴

사이트의 서버 > 설정 항목에서 에이전트의 설정 내용을 원격으로 변경할 수 있도록 추가했습니다.

호스트 정보 수집

URL에 추가로 호스트 정보를 표기합니다. /[HOST]/[URL] 형식으로 표기합니다.

설정 옵션은 아래와 같습니다.

whatap.profile_http_host_enabled=true

버그

시간 동기화

수집서버와의 시간 동기화 오류를 수정하였습니다.

Laravel

Laravel 프레임워크에서 발생하는 오류를 수정하였습니다. Request 정보를 포인터롤 사용하지 않고 복사해서 사용하도록 수정하였습니다. (estrdup 사용)

PHP Agent 0.2.4

2017-08-11

업데이트

Zend Thread Safe 지원

에이전트 캐시

SQL 캐시 초기화 로직 추가

예외 정보

Exception 발생 정보를 에러 정보로 수집

버그

메모리 오류

Map 처리 중에 발생하는 메모리 오류를 수정하였습니다.

PHP Agent 0.2.3

2017-08-08

업데이트

에이전트 예외처리

  • 에이전트 TCP관련 예외 처리

  • 에이전트 UDP관련 정리

에이전트 컴파일 버전 변경

golang 버전 업그래이드 1.8.1 → 1.8.3

에러 정보

예외 처리시 suffix Error, error 를 Erorr처리

설치

환경 변수

설치시에 서비스 스크립트 whatap-php 에 WHATAP_PHP_BIN 환경 변수 추가 WHATAP_PHP_BIN은 서버환경의 PHP Cli 경로를 설정한다. 설정된 cli 경로로 PHP 환경 정보를 수집

삭제 후 재설치 필요

PHP Agent 0.2.2

2017-07-26

업데이트

캐시 초기화

UTC 00시 기준으로 Hash 캐시를 초기화 한다.

자원 정보

Process 기준 CPU, Memory 정보 로직 수정.

에러 정보

PHP Extension 에러 및 예외처리옵션 설정 추가.

PHP Agent 0.2.0

2017-07-20

업데이트

클로즈 베타

Python Agent Release Notes

WhaTap Support <support@whatap.io>

Python Agent 1.0.4

graphql 라이브러리 모니터링 추가

graphql 라이브러리 모니터링 기능을 추가하였습니다. 수집되는 항목은 document, latency 입니다. graphql web api entrypoint 를 trace_ignore_url_prefix 옵션으로 무시하도록 적용하시면 자동으로 graphql.execute 함수를 트랜잭션 시작점으로 하고 도큐먼트 최상단 객체의 이름을 서비스이름으로 트랜잭션을 수집합니다. 이 경우 graphql 도큐먼트를 최상단 객체 이름의 가상트랜잭션으로 수집하여 도큐먼트별 성능분석이 가능합니다.

Python Agent 1.0.0

unix socket 옵션 추가

데이터 전송 모듈과 어플리케이션간에 통신채널로 unix socket 기능을 추가

Python Agent 0.1.116

urllib, urllib3 injection 오류 수정

urllib, urllib3 injection 오류를 수정하여 http, https 외부 호출시 트랜잭션에 정상적으로 표시됩니다.

Python Agent 0.1.94

액티브 스테이터스 지원

액티브 스테이터스를 지원합니다. Python Application에서도 액티브 트랜잭션을 수행 구간별로 분류하여 이퀄라이저로 보여줍니다. 에이전트는 5초마다 액티브트랜잭션 수를 수집함과 동시에 액티브 상태별로 트랜잭션 수를 수집합니다.

Redis 지원

Application 에서 Redis를 접속하실 경우 트랜잭션 타임라인에 표시됩니다.

Kubernetes 지원

Kubernetes 클러스터에서 트랜잭션 수집시 POD, NODE 정보가 추가됩니다. 트랜잭션을 POD 혹은 NODE별로 선택하여 검색하실 수 있습니다.

Python Agent 0.1.87

Celery Support

Celery 4.3 버젼부터 지원합니다. 향후 고객 요청사항에 따라 구형 버젼중 일부를 추가할 예정입니다.

설치방법

설치방법은 기본설치 방법과 같습니다.

Celery 시작 예

Linux
export WHATAP_HOME=/path/to/usr/dir
whatap-setting-config --host  10.1.1.1  --license xxxxxxxxxxx-xxxxxxxxxx-xxxxxxxx  --app_name celery --app_process_name python3.6
whatap-start-agent celery -A celery_worker worker --loglevel=info

Python Agent 0.1.81

Docker Image Alphine Linux Support

Alpine Linux 이미지에서 오동작하는 오류를 수정하였습니다.

Python Agent 0.1.71

SQL파라미터정보 조회 기능 추가

트랜잭션 프로파일 데이터에서 SQL파라미터정보를 보안키를 통하여 조회할 수 있습니다. whatap.conf 에 다음 옵션을 적용하면 외부 호출에 대한 파라미터를 조회할 수 있습니다. 추가된 옵션은 다음과 같습니다.

profile_sql_param_enabled

Default : false
Type : Boolean
SQL 파라미터를 수집을 활성화합니다. 단 파라미터는 별도 보안키를 입력해야 조회할 수 있습니다. 보안 키는 에이전트 설치 경로의 paramkey.txt 파일에 6 자리로 지정합니다. paramkey.txt 가 존재하지 않는 경우 자동 생성되며 random 키가 설정됩니다.

profile sql param enabled

HTTP-PARAMETERS 데이터 수집 기능 추가

트랜잭션 프로파일 데이터에서 HTTP-PARAMETERS 데이터를 수집하는 옵션이 추가되었습니다. whatap.conf 에 다음 옵션을 적용하면 외부 호출에 대한 파라미터를 조회할 수 있습니다. 추가된 옵션은 다음과 같습니다.

profile_http_parameter_enabled

Default : false
Type : Boolean
http 파라미터를 프로파일링을 활성화합니다. 단 파라미터는 별도 보안키를 입력해야 조회할 수 있습니다. 보안 키는 에이전트 설치 경로의 paramkey.txt 파일에 6 자리로 지정합니다. paramkey.txt 가 존재하지 않는 경우 자동 생성되며 random 키가 설정됩니다.

profile http parameter enabled
profile http parameter enabled modal

URL의 쿼리 스트링을 함께 수집하는 기능 추가

트랜잭션 프로파일 데이터에서 URL의 쿼리 스트링을 함께 수집하는 옵션이 추가되었습니다. whatap.conf 에 다음 옵션을 적용하면 외부 호출에 대한 파라미터를 조회할 수 있습니다. 추가된 옵션은 다음과 같습니다.

query_string_enabled

Default : false
Type : Boolean
트랜잭션 URL의 쿼리 스트링을 함께 수집하는 기능을 활성화합니다.

query_string_enabled

Default : false
Type : Boolean
트랜잭션 URL의 쿼리 스트링을 함께 수집하는 기능을 활성화합니다.

.NET Agent Release Notes

남기찬 <gcnam@whatap.io>

.NET Agent 1.0.8

2020-11-02

업데이트

  • 특정 상황에서 ADO.NET 비동기 함수 호출시 발생하는 Null 오류 수정

.NET Agent 1.0.7

2020-09-23

업데이트

  • whatap.conf 접근 오류 수정

  • 쿼리 중복해서 수집되는 문제 수정

.NET Agent 1.0.6

2020-08-18

업데이트

  • 로그가 과하게 많이 생성되는 문제 수정

  • 로그 라이브러리 속도 향상

.NET Agent 1.0.5

2020-07-30

업데이트

  • Oracle DB 쿼리 2번씩 찍히는 문제 추정 수정.

  • 로그 라이브러리 변경

  • 사용하지 않는 환경 설정 삭제

.NET Agent 1.0.4

2020-06-23

업데이트

사용자 수 구분에 쿠키 추가

실시간 사용자 수는 기본값으로 닷넷 에이전트의 경우 IP Address 를 사용합니다.

trace_user_using_ip 값이 false 로 설정되어 있고, trace_user_cookie_keys 에 수집하고자 하는 cookie 의 key값 ( 문자 ) 가 설정된경우 쿠키의 고유 값을 사용하여 카운트 합니다.

예) whatap.conf

trace_user_using_ip = false
trace_user_cookie_keys = "_ga"

HttpMessageHandler IP 누락 수정

HttpMessageHandler 에서 Client IP 정보가 누락되는 경우 수정되었습니다.

.NET Agent 1.0.3

2020-05-25

업데이트

Oracle Data Provider for .NET (ODP.NET) 지원

Oracle Database 의 ODP.NET 을 지원합니다.

ODP.NET 을 사용한 코드의 경우 자동으로 프로파일 데이터를 수집합니다.

프로파일 시작 시간 오류 수정

시작 시간이 잘못 수집되는 오류를 수정하였습니다.

.NET Agent 1.0.2

2020-03-31

업데이트

IIS 성능 카운트 대시보드 지원

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

접속 오류 수정

수집된 데이터를 Agent를 통해 WhaTap 으로 전송하는 과정에서 일부 오류를 수정하였습니다.

.NET Agent 1.0.1

2020-03-11

업데이트

IIS 32비트 호환 지원

IIS 32비트 호환 프로그램을 프로파일링 할수 있도록 수정했습니다.

IIS Application Pool 32비트 호환 설정

IIS 의 애플리케이션 풀 에 32비트 응용 프로그램 사용 옵션이 켜져 있는 경우 프로파일릴 데이터를 수집합니다.

.NET Agent 1.0.0

2020-01-31

업데이트

오픈베타 베타

최초 서비스 배포합니다.
윈도우 닷넷 프레임워크 4.5 환경부터 지원합니다.

Server Agent Release Notes

WhaTap Support <support@whatap.io>

Server Agent 1.3.8

윈도우 성능 카운터 수집기능

  • 임의의 윈도우 성능카운터를 그룹별로 수집할 수 있습니다.

윈도우 성능 수집시 Win32 API 사용 옵션 추가

  • 윈도우 성능 카운터가 작동하지 않는 환경에서 Win32 API를 사용하여 성능지수를 수집합니다.

  • 설정 파일에서 native_api.enabled=true 를 추가할 수 있습니다.

Server Agent 1.3.7

로그 파일 모니터링 성능 개선

  • 코드 최적화를 통해 로그 파일 모니터링 성능을 개선하여 기존 2초당 60라인에서 1000라인으로 변경되었습니다.

  • 단위시간당 대량으로 발생하는 로그 파일을 모니터링 하실 때는 옵션(log.skip.threshold)를 1000 이상으로 설정하여 대량처리가 가능합니다.

Server Agent 1.3.6

윈도우 에이전트 이중화

  • 와탭 모니터링 에이전트 작동시 기존 1개 프로세스에서 변경되어 2개 프로세스로 작동하도록 변경되었습니다.

  • 2개의 프로세스는 성능 모니터링 및 와탭 에이전트 자체 점검 기능으로 나뉘어 작동합니다.

  • 와탭 성능 모니터링 프로세스는 일간(오전2시) 재시작하며 성능 수집 장애 감지시 3분이내 자동 재시작 합니다.

Server Agent 1.3.5

윈도우 에이전트 CPU 성능 정보 수집 오류 수정

  • 윈도우 에이전트 1.3.4버젼 CPU 성능 정보 수집기능에 이상을 수정하였습니다.

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.3

CPU 성능 모니터링 기능 개선

  • 127개 이상의 코어 이상을 가진 서버에 대응하기 위해 와탭 데이터 수집 프로토콜울 수정 했습니다.

Linux process 메모리 pss 옵션 추가

  • shared 메모리를 사용하는 multiprocess application에서 pss 방식을 사용하여 정확한 메모리 사용량을 수집하는 옵션이 추가되었습니다.

  • echo "proc.pss.enabled=true" >> /usr/whatap/infra/conf/whatap.conf 로 활성화할 수 있습니다.

  • pss 방식은 메모리 사용량 계산시 cpu 사용량이 2core 서버 기준 3%를 초과할 수 있습니다. 개발계에서 와탭 에이전트 CPU 부하를 확인 후에 사용을 권고드립니다.

Server Agent 1.3.2

로그 모니터링 기능 개선

  • 로그 파일 경로에 *(wildcard) 사용으로 임의의 디렉토리/파일 패턴을 감시할 수 있습니다.

Server Agent 1.3.1

윈도우 IIS 모니터링 기능 추가

IIS 성능카운터 모니터링 기능이 추가되었습니다.

  • W3SVC_W3WP

  • WAS_W3WP

  • Web Service Cache

  • Web Service

  • .NET CLR Exceptions

  • TCPv4

  • Active Server Pages

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으로 통신합니다.

Server Agent 1.2.9

Freebsd Agent 디스크 사용량 오류 수정

Freebsd Agent 에서 df 에서 측정된 사용량보다 낮게 측정되는 현상 수정

Server Agent 1.2.8

리눅스 Agent 메모리 증가 수정

리눅스 Agent 에서 goroutine 증가 및 메모리 증가 현상 수정

Server Agent 1.2.7

로그 모니터링시 Stop Word 추가

로그 모니터링시 과도한 키워드 매칭을 줄여주는 Stop Word를 추가할 수 있습니다.

과부하로 프로세스별 오픈 파일 디스크립터/핸들 카운트 제거

와탭 모니터링 에이전트 CPU 과다사용으로 해당 지수를 이번 버젼에서 제거하였습니다.

Server Agent 1.2.6

와탭 서버 모니터링 프로세스 CPU/HEAP/GC 모니터링 추가

와탭 서버 모니터링 프로세스의 자체 자원 사용량 모니터링이 기술지원 목적으로 추가되었습니다. 와탭 기술지원을 받으실 때 와탭에서 해당 기능을 활성할 수 있습니다.

Server Agent 1.2.5

데이터 수집장애 개선을 위해 연결상태 비정상 감지시 자동 리셋 기능 추가

Server Agent 1.2.4

원격 파일 뷰어 기능 추가

베리타스 클러스터 디스크 IO 미수집 오류 수정

Windows API Slow 알림 삭제

Server Agent 1.2.3

Linux Process Memory 계산시 Shared 중복 계산 개선

Netstat 지수 수집 추가

Linux Open File Descriptor 수집 추가

Server Agent 1.2.2

Windows Agent 가 운영체제 Uptime을 사용할때 Win32_OperatingSystem 값을 한번만 질의하도록 수정

Server Agent 1.2.1

Linux 메모리 사용량에 Available Memory 적용

CentOS7을 포함한 최신 리눅스 운영체제에서 /proc/meminfo에 Available 이 있을 경우 메모리 사용량으로 사용하도록 변경하였습니다. CentOS6를 포함한 구형 리눅스 운영체제에서 메모리사용량은 전체 - free - buffer - cache로 유지합니다.

Server Agent 1.2.0

Linux INode Depletion 이벤트 추가

리눅스 운영체제에서 파티션별 INode 고갈 여부를 체크할 수 있는 알림을 추가하였습니다.

Server Agent 1.1.9

로그 알림 발생조건 개선

파일로그 알림 발생조건에 지정된 기간내에 반복 발생하는 횟수를 추가하였습니다. 특정회수 이상 로그가 발생할때 알림을 발생할 수 있도록 개선하였습니다.

로그 발생시 특정 스크립트 실행 기능 추가

지정된 파일에서 로그 알림이 발생할때 지정된 서버에서 지정된 스크립트가 실행되는 기능이 추가되었습니다. 반복적으로 실행될 수 있는 서버 관리기능이 로그발생과 연동되어 작동할수 있습니다.

Server Agent 1.1.8

Windows Agent CPU 부하 개선

Windows 호스트에서 데이터 수집 코드를 개선하여 소모되는 CPU 사용부하를 개선하였습니다.

Server Agent 1.1.7

Windows Agent No Data 오탐 개선

Windows 호스트에서 성능정보 API(Windows Performance API)의 지연 발생시 No Data 알림이 발생하는 현상 개선.

Windows Performance API 지연 현상은 윈도우 명령  lodctr /R, sfc /scannow 를 참고하여 개선 할 수 있습니다.

Server Agent 1.1.6

Disk 목록 Bug Fix

Linux 호스트에서 디스크 마운트를 중복으로 하더라도 정상적으로 목록화할수 있도록 개선.

다운체크 Bug Fix

와탭 Agent간 상호 감시 가능인 다운체크 기능의 오류로 Crash가 발생하는 현상을 개선

Oracle Agent Release Notes

WhaTap Support <support@whatap.io>

Oracle Agent 1.3.9

2018-12-03

오라클 session counts sql 개선

다음 수집되는 엑티브세션 SQL의 성능이 개선되었습니다.

session list

Telegraf Agent Release Notes

임재환 <jhlim@whatap.io>

URL Agent Release Notes

WhaTap Support <support@whatap.io>

1. URL Monitoring Agent 0.0.3

2019-04-25

버그 픽스

https 프로토콜의 URL 모니터링이 불가하여 하기 에러가 발생하던 건을 개선하였습니다.

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

SSL 기반으로 통신할 경우 인증서를 받아들여 정상 통신이 가능하도록 하는 매커니즘이 필요함에 따라, 클라이언트 모듈이 등록된 URL로 접근시에 받아들이게 되는 인증서를 허용하도록 개선하였습니다.

잔여 버그

SHA-256 ECDSA 알고리즘을 사용하는 인증서가 탑재된 https protocol을 사용하는 URL에 대한 체크가 불가함이 확인되었습니다.