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환경변수로 설정하기를 권고합니다.