Java Agent 2.1.2

v2.1.2

업데이트

weaving 설정 추가

오픈소스 플러그인을 추적할 수 있는 weaving 설정을 추가하였습니다.

기존의 weaving_reserved 설정과 동일한 기능을 가진 weaving 설정을 추가하였습니다.

설정
weaving=tomcat10
설정
weaving_reserved=tomcat10

thread 중단 설정 추가

thread 동작 시간이 설정값을 초과하는 경우에 thread 중단 여부를 설정할 수 있도록 항목을 추가하였습니다.

기본 설정값은 false 입니다.

설정
# 기본값
auto_thread_kill_elapsed=0
auto_thread_kill_enabled=false

Collection 모니터링 수정

Collection 클래스를 hooking 하는 기존 방식에서 CollectionHolder를 통해 간접적으로 Collection 클래스 정보를 조회 할 수 있도록 수정하였습니다.

Collection을 생성하는 클래스를 collection_nonstatic_holders 설정에 추가하여 Collection Map 메뉴에서 확인할 수 있습니다.

설정
collection_nonstatic_holders=org.apache.catalina.session.ManagerBase

데이터베이스 호출시 에러 건수를 실시간 통계에 추가

데이터베이스 호출시 에러가 발생한 경우 실시간 통계에 에러 건수를 추가하도록 설정하였습니다.

Http, 데이터베이스 연결 실시간 로그 추가

Http, 데이터베이스 연결에 대한 실시간 로그를 추가하였습니다.

에이전트 로그에서 지정한 oname 표시

oname을 -D 옵션으로 지정한 경우에도 에이전트로그에서 PID 대신에 에이전트 이름을 표시하도록 수정하였습니다.

jdbc url 추출 구분자 추가

jdbc url 추출시 '?', ';'를 기준으로 truncate 할 수 있도록 수정하였습니다.

';' 추가

log 오픈소스를 사용하는 경우 자동 인식 기능 추가

logback, log4j 오픈소스를 사용하는 경우, 또는 logging 문자열을 포함한 log 관련 오픈소스를 사용하는 경우 자동으로 hooking 옵션을 사용하지 않도록 기능을 추가하였습니다.

logsink 수집데이터 추가

logsink에서 수집하는 데이터를 추가하였습니다.

설정에 따라서 transaction id, login id, http host 데이터 수집 여부를 결정할 수 있습니다.

설정
# 기본값 (default)
_logtag_enabled = false         # tag
logtag_txid_enabled=false       # transation id
logtag_login_enabled=false      # login id
logtag_httphost_enabled=false   # http host

HttpClient Timeout 적용 및 에러 처리

HttpClient에 timeout을 적용하고, timeout 발생시 에러처리를 할 수 있도록 기능을 추가하였습니다.

jmx pool 설정 추가

jmx pool object의 기본값을 수정하였습니다.

jmx pool의 데이터소스 이름 사용 여부를 결정할 수 있는 옵션을 추가하였습니다.

데이터소스 이름을 등록하는 경우 jndi 방식을 실행하고, 이름을 등록하지 않은 경우 기본 url 방식으로 동작합니다.

설정
# 기본값
jmx_pool_dsname_enabled=false
jmx_pool_object="*:type=DataSource,class=*,name=*"

heapdump 파일 경로 옵션 추가

heapdump 파일 경로를 지정할 수 있도록 log_root 옵션을 추가하였습니다.

설정
# 기본값
log_root=${WHATAP_HOME}/dump

배치 에이전트 active 시작 부분 수정

배치 프로세스의 Main thread에서 active stack을 남길 수 있도록 배치 에이전트를 수정하였습니다.

active stack의 thread 이름 표시 설정 추가

active stack의 thread 이름을 표시할 수 있도록 설정을 추가하였습니다.

설정
# 기본값
active_stack_thread_name_enabled=false
yard 버전이 낮은 경우 true 설정시 프로토콜 오류로 에이전트 연결이 지속적으로 끊어집니다.

비동기 thread 이름을 표시 설정 추가

비동기 thread의 id와 이름을 표시할 수 있도록 설정을 추가하였습니다.

설정
# 기본값
debug_async_thread_enabled=false

데이터 베이스 호출 URL 저장

데이터베이스 호출 URL을 저장하도록 수정하였습니다.

데이터 베이스 호출 hash값 제거

데이터베이스 호출 hash값을 ERROR 텍스트에서 제거하였습니다.

에이전트 실행 로고 수정

자바 에이전트 실행시 로고 내용을 수정하였습니다.

The Best Observability in Java

비동기 http 호출 에러 알림 메세지 수정

비동기 http 호출 에러 발생시 status code를 표시하도록 알림 메세지를 수정하였습니다.

에이전트 설정의 license 키 옵션 수정

whatap.conf에서 license와 accesskey 옵션을 모두 활용할 수 있도록 수정하였습니다.

설정
# 동일한 기능
license=
accesskey=

자바 에이전트 메타태그 옵션명 수정

자바 에이전트 메타태그 옵션명을 수정하였습니다.

설정
# 기본값 (default)
agent_meta_tags_enabled=true

신기능

agent 환경 변수 제외값 추가

환경 변수 조회 기능에서 특정 키값을 입력하면 조회 항목에서 제외할 수 있도록 기능을 추가하였습니다.

구분자는 ','로 대소문자를 구분하지 않습니다. agent_env_system_enabled, agent_env_jvm_enabled 설정과 연결하여 사용할 수 있습니다.

설정 방법
agent_env_system_enabled=false
agent_env_jvm_enabled=true

agent_env_ignore_keys=user.timezone,user.name,user.language

연계 서비스 상태 추적 기능 추가

target IP 혹은 서비스의 접속 상태를 로그 모니터링의 liveTail에서 확인할 수 있도록 연계 서비스 상태 추적 기능을 추가하였습니다.

logsink_rt_enabled 옵션을 true로 설정하여 기능을 활성화 할 수 있고 #RemoteTrace 카테고리로 로그를 수집합니다.

정상 응답인 경우 level이 ok, 에러인 경우 level이 error 입니다.

정상 응답인 경우 logsink_rt_ok_interval 설정 간격에 맞추어서 로그를 기록합니다. 기본값은 30초 입니다.

에러 응답인 경우 logsink_rt_error_interval 설정 간격에 맞추어서 로그를 기록합니다. 기본값은 5초 입니다.

설정
# 기본값
logsink_rt_enabled=false

logsink_rt_error_interval=5000
logsink_rt_ok_interval=30000

External Call 에러 알림 기능 추가

Http, Database 호출시에 에러가 발생하거나 응답이 지정된 시간보다 느린 경우 알림을 받을 수 있도록 기능을 추가하였습니다.

exception_alert_enabled 옵션을 true로 설정하여 기능을 활성화 할 수 있습니다.

exception_alert_stack_size 옵션으로 에러 스택 길이를 지정하여 알림 메세지로 받을 수 있습니다.

exception_alert_silent_time 옵션으로 지정한 기간만큼 에러 알림을 비활성화할 수 있습니다.

알림 메세지에는 url, status_code, error_message, error_stack 등을 표시합니다.

설정
# 기본값
# 에러 알림 기능 활성화 여부
exception_alert_enabled=false

# 에러 알림 메세지에 표시한 스택의 길이
exception_alert_stack_size=50

# 기본값 5분 (30000ms)
exception_alert_silent_time=300000

# 트랜잭션 에러 알림 활성화 여부
exception_alert_service_enabled=false

# http 호출시 에러 알림 활성화 여부
exception_alert_httpc_enabled=false

# jdbc 호출시 에러 알림 활성화 여부
exception_alert_jdbc_enabled=false

# 트랜잭션 에러 알림에서 무시할 status code
status_alert_ignore=403

# 트랜잭션 에러 알림에서 무시할 url:status_code 조합
status_alert_ignore_set=/api/test/timeout:408

# http call 에러 알림에서 무시한 status code
httpc_status_alert_ignore=408,500

# http call 에러 알림에서 무시한 url:status code 조합
httpc_status_url_alert_ignore_set=/api/test/timeout:408

트랜잭션, http 호출의 에러 수준 조정 기능

트랜잭션이나 http 호출의 상태를 정상 호출로 인식할 수 있도록 기능을 추가하였습니다.

트랜잭션이나 http 호출의 상태를 info로 설정하게 되면 Spring Framework의 ExceptionHandler에서 처리하지 않은 에러를 정상으로 인식할 수 있도록 버전 기능을 추가하였습니다.

조건에 해당하는 경우 히트맵에 ErrorLevel에 INFO로 표시하고 에러 통계에는 포함합니다.

설정
# 기본값 (default)
transaction_status_mode=normal
httpc_status_mode=normal

# 에러 무시
transaction_status_mode=info
httpc_status_mode=info

# 트랜잭션 에러 알림에서 무시할 status code info로 인식
status_alert_ignore=403

# 트랜잭션 에러 알림에서 무시할 url:status_code 조합을 info로 인식
status_alert_ignore_set=/api/test/timeout:408

# http call 에러 알림에서 무시한 status code info로 인식
httpc_status_alert_ignore=408,500

# http call 에러 알림에서 무시한 url:status code 조합을 info로 인식
httpc_status_url_alert_ignore_set=/api/test/timeout:408

Alibaba Druid ConnectionPool 추적 기능 추가

Alibaba Druid connection pool 을 추적할 수 있도록 기능을 추가하였습니다.

설정
# 기본값
druid_pool_enabled=false

netstat 기능 추가

oshi 라이브러리 활용하여 netstat을 수집하는 기능을 추가하였습니다.

네트워크 지표들 중 packet, collision, drop, error, bps 데이터를 수집합니다.

설정
# 기본값
oshi_netstat_enabled=false
debug_oshi_netstat_enabled=false

버그

.x 플러그인 int 타입 인식 오류 수정

x 확장자를 사용하는 플러그인에서 int 타입을 인식하지 못하는 오류를 수정하였습니다.

배치 에이전트 getResultSet 오류 수정

배치 에이전트의 TraceSQL.getResultSet 오류를 수정하였습니다.

Http 호출 에러 시간설정 버그 수정

Http 호출시 에러 시간 max를 0으로 설정하여도 에러를 표시하는 버그를 수정하였습니다.

sql 추적시 LocalDate 추적하지 못하는 문제

sql 요청시 java.time.LocalDate 타입을 추적하지 못하는 문제를 수정하였습니다.

에이전트 로그 출력시 에러 수정

java.sql.Timestamp 타입을 활용하여 로그를 남기는 경우 에러가 발생하는 문제를 수정하였습니다.

클래스 시그니처 확인 버그 수정

에이전트 설정 메뉴의 클래스 시그니처 표시 요청할 때 java.lang.NullPointerException 발생하는 것을 수정하였습니다.

컨테이너 ID 추출 오류 수정

컨테이너 ID 추출 오류를 수정하였습니다.