제니퍼 4.5.3 릴리즈노트

버그 수정

보고서 정렬시 잘못된 컬럼명 변경

일일 보고서, 주간 보고서의 상세 정보 탭에서 정렬 기준을 선택시 몇몇 기준에 대해 정상적으로 정렬되지 않는 현상이 해결하였다.

보고서 MS-SQL 2008 지원

MS-SQL 2008은 컬럼간의 문자열을 붙여주는 연산시 || 가 아닌 + 키워드를 사용하여 문제가 발생했는데 이를 해결하였다.

recurrsive_call_trace 옵션이 적용되지 않는 현상 수정

기존 버전에서는 recurrsive_call_trace 옵션을 true로 설정하여도 적용되지 않는 문제가 있었는데, 이 문제를 해결하였다.

recurrsive_call_trace=false(기본 값: false)

기능 변경

브라우저 호환성 개선

리눅스의 파이어폭스, 맥의 싸파리, 구글 크롬 브라우져, IE9등의 여러 브라우져에서 편리하게 사용할 수 있도록 개선하였다.

콜렉션 모니터링 화면 개선

화면에서 콜렉션 최소 모니터링 크기와 자동 스택트레이스 크기값을 화면에서 변경할 수 있도록 개선하였다. 단 제니퍼 화면에서 에이전트 옵션을 변경 후 저장시 설정 값들이 다시 갱신되는 현상을 방지하기 위해 아래 두가지 에이전트 옵션을 주석처리한다.

lwst_collection_minimum_monitoring_size = 3000 
lwst_collection_auto_stacktrace_size = 100000

memory-collection

개발자용 에이전트 패킹 추가

개발자가 프로그램 개발시 자바 프로세스에 대한 정보를 간단하게 얻고자 하는 경우 사용할 수 있는 jennifer.dev.jar 파일이 추가되었다. 기본적으로 마스터, 서브 에이전트 구조의 설정이 필요하며 다음과 같은 옵션을 사용하여 애플리케이션을 실행한다.

java -Xbootclasspath/p:/jennifer/agent/jennifer.dev.jar   \
-Djennifer.config=/jennifer/agent/w11.conf  \
-javaagent:/jennifer/agent/jennifer.dev.jar \ 
-Djennifer.subagent=true com.javaservice.jennifer.test.DevTest

이와 함께 설정의 편리성을 위해 라이센스 키 정보 또한 에이전트 설정 파일에 포함시킬 수 있다. 제니퍼 에이전트 설정 파일안에 아래 옵션을 추가해준다.

license_key = 사용중인 라이센스 키

보고서 혼합 아이템 추가

사용자가 별도로 원하는 보고서 양식을 만들고자 할 경우 제니퍼가 제공하는 기본 아이템의 조합만으로는 한계가 있을 수 있다. 이를 해결하기 위해 차트, 텍스트, 테이블 등을 혼용할 수 있는 아이템이 추가되었다. 아이템의 데이터를 조회하는 부분을 변경하면 외부의 데이터를 출력할 수 있다.

ignore_hooking_prefix 옵션 추가

후킹 대상에서 제외시킬 클래스를 지정할 수 있는 옵션이 추가 되었다. 다음과 같이 클래스 명 또는 패키지 명을 설정한다.

ignore_hooking_prefix = com.jennifer.ignore

PreInstall 변경사항

다음 아래 두 옵션이 기본으로 적용되도록 변경되었다.

using_adaptable_http_agent=true
http_agent_classpath=에이전트 디렉토리/jennifer.http.jar

ERROR_RECURRSIVE_CALL 예외 감지 비활성화 방법 추가

자바 애플리케이션이 다수의 JSP 또는 Servlet을 HttpServletRequest 객체의 RequestDispathcer를 이용하여 include 또는 forword 하는 경우 위 예외가 발생한다. 이것을 비활성화 하고자 하는 경우 다음과 같은 설정을 해준다.

recurrsive_call_max_count=0(기본값: 50000)

기능 추가

사용자 정의 PTA 차트 관련 옵션 변경

키: key + 순차적 숫자

값: [도메인 명]날짜:성능 데이터 키, 스케일 값, 선의 색, 선의 굵기

예) key0 [domain1]20110429:perf/W11/hit,0,#ffffff,1

값의 각 정보는 다음과 같다.

도메인 명

데이터를 가져오고자 하는 제니퍼 서버의 도메인 명(기본값 _DEFAULT) 
날짜

년, 년월, 년월일 또는 예약된 키워드 
예) 2011, 201106, 20110609, today, yesterday, lastworkday, lastweekday, lastmonthday, lastmonthworkday, maxlastmonthday, maxmonthday, maxyearday 
성능 데이터 키

PTA에 저장된 성능 데이터의 키 
예) perf/TOT/hit 
* 시간당 데이터를 PTA 차트로 보여주고자 할 경우 성능 데이터 키의 맨 뒤에 _24를 붙인다. (각 시간대의 최대 또는 평균 값을 기준으로 하여 시간당 데이터를 균일화) 
예) perf/TOT/hit_24 
스케일 값

차이가 크게 나는 두 성능 데이터의 기준을 맞추기 위한 값으로 원래의 데이터에서 지정한 값을 곱한 값이 차트로 표현된다.(기본값 0) 
선의 색

차트의 선 색을 설정한다. 반드시 #ffffff와 같은 형식으로 입력한다. 
선의 굵기

차트의 선 굵기를 설정한다. (기본값 1)

SNMP Adapter 설정 변경

제니퍼가 제공하는 SNMP는 GET/SET, TRAP 두가지이다.

해당 기능을 사용하기 위해서는 제니퍼 서버의 docs/snmp 디렉토리에 있는 jennifer40.snmp.jar, jennifer40.snmp.trap.jar, snmp4j-1.11.2.jar 파일을 제니퍼 서버의 common/lib 디렉토리에 복사해서 사용해야한다.

GET / SET

GET/SET을 이용하고자 하는 경우 제니퍼가 제공하는 별도의 SNMP 모듈이 필요하다. 배포된 압축 파일 내에 run.bat 혹은 run.sh를 실행하면 SNMP 데몬이 시작된다. SNMP 데몬은 설정 파일인 snmp.properties를 기준으로 하여 제니퍼 서버에 데이터를 요청하며 써드 파티의 MIB 브라우저를 위한 MIB 파일을 mib 디렉토리에 생성한다. 설정 파일은 SNMP 환경 설정과 각 성능 정보에 대한 OID 정보를 포함하며 필요시 변경 가능하다.

# Daemon status
enable_snmp=true

# SNMP Daemon IP/Address
snmp_listen_address=127.0.0.1/161

# Source URL
url_support=http://support.jennifersoft.com:7900/get_perf_agent.jsp
#url_me=http://127.0.0.1:7900/get_perf_agent.jsp

# Enterprise ID (Product: Jennifer)
enterprise=1.3.6.1.4.1.27767.1

# The Name of Domain 1
SYS1=1

# Agents of Domain 1
SYS1_X11=1
SYS1_X12=2
SYS1_X13=3

# The Name of Domain 2
SYS2=2

# Agents of Domain 2
SYS2_X11=1
SYS2_X12=2
SYS2_X13=3

# Perf Key
ac0=1.0
ac1=2.0
ac2=3.0
ac3=4.0
act_serv=5.0
act_user=6.0
tps=7.0
res_time=8.0
con_user=9.0
error_rate=10.0
reject_rate=11.0
hit_hour=12.0
visit_hour=13.0
proc_cpu=14.0
proc_mem=15.0
jdbc_idle=16.0
jdbc_alloc=17.0
jdbc_active=18.0
jvmmem_total=19.0
jvmmem_used=20.0
hit_day=21.0
visit_day=22.0
alert_fatal=23.0
alert_error=24.0
alert_warn=25.0

각 옵션에 대한 설명은 다음과 같다.

SNMP Daemon의 동작여부를 설정한다. false로 설정할 경우 Daemon은 본래의 기능을 수행하지 않고 대기한다.

# Daemon status
enable_snmp=true

SNMP Daemon의 아이피, 포트를 설정한다. 써드 파티가 제공하는 MIB 브라우저 이용시 여기서 설정한 아이피와 포트에 접속을 하게 된다.

# SNMP Daemon IP/Port
snmp_listen_address=127.0.0.1/161

성능 정보를 얻기 위한 제니퍼 서버의 URL을 등록한다. 키는 반드시 url_ 로 시작해야 한다.

# Source URL
url_support=http://support.jennifersoft.com:7900/get_perf_agent.jsp
url_me=http://127.0.0.1:7900/get_perf_agent.jsp

SNMP의 엔터프라이즈 아이디를 설정한다.

# Enterprise ID (Product: Jennifer)
enterprise=1.3.6.1.4.1.27767.1

성능 정보를 얻고자 하는 제니퍼 서버의 에이전트 정보를 설정한다. 키는 제니퍼 서버의 도메인 이름과 에이전트 아이디를 _로 연결한 문자를 값에는 원하는 OID 값을 설정한다. (예) 서버의 도메인 명_에이전트 아이디

# Agents of Domain 1
SYS1_X11=1
SYS1_X12=2
SYS1_X13=3

제니퍼 서버의 각 성능 데이터에 대한 OID를 매핑한다. 키는 변경해서는 안되며 값에는 원하는 OID 값을 설정한다.

# Perf Key
ac0=1.0
ac1=2.0
ac2=3.0
ac3=4.0
act_serv=5.0
act_user=6.0
tps=7.0
res_time=8.0
con_user=9.0
error_rate=10.0
reject_rate=11.0
hit_hour=12.0
visit_hour=13.0
proc_cpu=14.0
proc_mem=15.0
jdbc_idle=16.0
jdbc_alloc=17.0
jdbc_active=18.0
jvmmem_total=19.0
jvmmem_used=20.0
hit_day=21.0
visit_day=22.0
alert_fatal=23.0
alert_error=24.0
alert_warn=25.0

TRAP

TRAP 방식을 이용하고자 할 경우 com.javaservice.jennifer.snmp.trap.SnmpTrap SMS 어뎁터를 이용한다. 배포된 압축 파일에 포함되어 있는 jennifer40.snmp.trap.jar를 snmp4j 라이브러리와 함께 제니퍼 서버의 common/lib에 복사하면 된다.

다음 설명은 SNMP TRAP을 이해하고 있다고 가정한다.

우선 제니퍼 서버의 sms_adapter_class_name 옵션으로 이 SMS 어뎁터를 설정한다.

sms_adapter_class_name =com.javaservice.jennifer.snmp.trap.SnmpTrap

그리고 snmp_trap으로 시작하는 옵션들로 SNMP TRAP 정보를 지정한다.

# Private Enterprise Number(PEN) for JenniferSoft is 27767.
snmp_trap_oid =  1.3.6.1.4.1.27767.1.1
snmp_trap_target_address = 127.0.0.1/162
snmp_trap_target_community = public

테스트를 위해서 JENNIFER_HOME/server/doc/snmp-trap/trapview.bat를 실행하면 제니퍼 서버가 전송하는 Trap 메세지를 콘솔에서 확인할 수 있다. 관련 메시지는 다음과 같다.

TRAP[requestID=506943247, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.4.1.
27767.1.1 = 10:46:19,E,UNCAUGHT,T11,UNCAUGHT EXCEPTION]]
TRAP[requestID=942904425, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.4.1.
27767.1.1 = 10:46:21,E,UNCAUGHT,T11,UNCAUGHT EXCEPTION]]
TRAP[requestID=270685152, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.4.1.
27767.1.1 = 10:46:27,E,UNCAUGHT,T11,UNCAUGHT EXCEPTION]]
TRAP[requestID=1772678772, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.4.1
.27767.1.1 = 10:46:27,E,UNCAUGHT,T11,UNCAUGHT EXCEPTION]]
TRAP[requestID=1562294832, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.4.1
.27767.1.1 = 10:46:27,E,UNCAUGHT,T11,UNCAUGHT EXCEPTION]]

현재 가동중인 Worker수 표기

pool_count

제니퍼 서버와 에이전트간의 통신에 가상 아이피 및 포트 설정

방화벽이 설치되어 있는 환경에서 에이전트를 위한 가상의 에이전트 아이디, 포트를 설정할 수 있도록 옵션이 변경 되었다.

specified_agent_ip=에이전트 아이디:아이피:포트;에이전트 아이디:아이피:포트

검색조건 초기화 기능 추가

일일 보고서, 주간 보고서 상세 조회시 검색조건을 초기화 할 수 있는 기능을 추가하였다.

클라이언트 정보의 표시여부 설정옵션 추가

비지니스 그룹핑 성능 데이터 중 클라이언트 정보의 표시여부 설정옵션 추가하였다.

show_biz_client = false (기본 값: false)

경보 ON/OFF 사용자 정의 차트 추가

제니퍼에서 발생하는 실시간 경보 데이터를 기반으로 동작하는 경보 ON/OFF 차트가 추가되었다. 파란색은 OFF, 붉은색은 ON 상태를 나타낸다. 매우 많은 종류의 경보를 컬럼 단위로 보여주는 것은 시각적으로 효율적이지 않기 때문에 각각의 경보를 그룹으로 설정한다. 설정 파일은 제니퍼 서버의 bin/alert-group.xml 이며 포맷은 다음과 같다.

<?xml version="1.0" encoding="UTF-8"?>
<alertGroups>
	<alertGroup>
		<name>PROCESS</name>
                <analyzeMenuId>21</analyzeMenuId>
		<alertKeepTime>3000</alertKeepTime>
		<alerts>
			<alert>ERROR_PROCESS_DOWN</alert>
			<alert>ERROR_MAYBE_BUSY_PROCESS</alert>
		</alerts>
	</alertGroup>
	<alertGroup>
</alertGroups>

다음은 각 속성에 대한 설명이다.

속성에 대한 설명

필드명

설명

alertGroups

경보 그룹을 나타내는 태그로써 여러개의 alertGroup 태그를 포함한다.

name

경보 그룹 이름을 입력한다. [그림1]의 파란영역의 컬럼명으로 표기된다.

analyzeMenuId

각 ON/OFF 버튼을 클릭하면 [그림2]의 경보 상세화면으로 이동하는데 여기서 이동하고자 하는 화면의 아이디를 입력한다. 화면의 아이디는 [그림3]과 같이 Properties > Menu Setting에서 확인할 수 있다.

alertKeepTime

경보 그룹에 속하는 경보가 발생시 ON 상태를 유지할 시간을 나타낸다. 단위는 밀리세컨드이며 이 시간이 경과한 후에는 자동으로 OFF 상태로 변경된다.

alerts

경보 그룹에 포함시킬 경보들의 묶음 태그로써 여러개의 alert 태그를 포함한다.

alert

경보 그룹에 포함될 경보들의 Full Message 이다.

alert_onoff_chart

alert_onoff_detail

check_menu_id

사용자 정의 차트에는 다음과 같은 옵션을 지정할 수 있다. 설정이 가능한 필드 옵션은 다음과 같다

필드옵션

설명

에이전트

경보 상태를 보여주고 하는 제니퍼 에이전트의 아이디를 입력한다. 아무값도 입력하지 않을 경우 모든 에이전트의 상태를 보여준다.

경보유지시간

경보 발생시 ON 상태를 유지할 시간을 설정한다. 단위는 밀리세컨드이며 기본 값은 bin/alert-group.xml의 alertKeepTime 값이다.

설정이 가능한 파라미터 옵션은 다음과 같다.

파라미터 옵션

설명

SHOW_SMALL_ICON

경보등의 아이콘을 작은 이미지로 보여준다.

비지니스 ON/OFF 사용자 정의 차트 추가

제니퍼의 비지니스 그룹 성능 데이터를 기반으로 동작하는 경보 ON/OFF 차트가 추가되었다. 단, 사전에 비지니스 그룹 설정을 해야한다. 파란색은 OFF, 붉은색은 ON 상태를 나타낸다. 설정 파일은 제니퍼 서버의 bin/bizgroup-column.xml 이며 포맷은 다음과 같다.

<?xml version="1.0" encoding="UTF-8"?>
<bizGroup>
	<column>
		<name>SERVICE TIME</name>
		<key>service_time</key>
		<analyzeMenuId>67</analyzeMenuId>
		<threshold>100</threshold>
	</column>
        <column>
		<name>SQL TIME</name>
		<key>sql_time</key>
		<analyzeMenuId>67</analyzeMenuId>
		<alertKeepTime>3000</alertKeepTime>
		<threshold>100</threshold>
	</column>
	<column>
		<name>TX-CALL TIME</name>
		<key>etx_time</key>
		<analyzeMenuId>67</analyzeMenuId>
		<threshold>100</threshold>
	</column>
	<column>
		<name>SERVICE COUNT</name>
		<key>service_count</key>
		<analyzeMenuId>67</analyzeMenuId>
		<threshold>100</threshold>
	</column>
	<column>
		<name>SLA FAIL COUNT</name>
		<key>sla_fail</key>
		<analyzeMenuId>67</analyzeMenuId>
		<threshold>100</threshold>
	</column>
</bizGroup>

다음은 각 속성에 대한 설명이다.

필드명

설명

bizGroup

비지니스 그룹을 나타내는 태그로써 여러개의 column을 태그를 포함한다.

column

비지니스 그룹의 각 성능 데이터를 구분하는 태그이다.

name

각 성능 데이터의 이름으로써 [그림1] 의 파란 영역에 컬럼명으로 표기된다.

key

각 성능 데이터를 조회하기 위한 키이다. 이 키 값은 고정으로 변경하지 않는다.

analyzeMenuId

각 ON/OFF 버튼을 클릭하면 [그림2]의 X-VIEW를 보여주게 되는데 여기서 이동하고자 하는 화면의 아이디를 입력한다. [그림2]의 파란영역의 버튼을 클릭하면 제니퍼 화면이 해당 화면으로 전환된다. 기본값은 PTA 화면의 아이디이다. 화면의 아이디는 [그림3]과 같이 Properties > Menu Setting에서 확인할 수 있다.

threshold

각 성능 데이터의 임계치이다. 비지니스 그룹의 성능 데이터 값이 임계치보다 클 경우 경보등이 ON 상태로 전환된다.

그림1

그림2

그림3

사용자 정의 차트에는 다음과 같은 옵션을 지정할 수 있다. 설정이 가능한 필드 옵션은 다음과 같다

필드옵션

설명

임계치

성능 데이터의 값을 ON 상태로 표기할 기준 값을 설정한다. 기본 값은 bin/bizgroup-column.xml의 threshold 값이다.

설정이 가능한 파라미터 옵션은 다음과 같다.

파라미터 옵션

설명

VIEW_BIZ_GROUPS

차트에 보여주고자 하는 비지니스 그룹 아이디를 입력한다. 구분자는 콤마(,)이며 아무 값도 입력하지 않을 경우 모든 비지니스 그룹의 상태를 보여준다.

SHOW_SMALL_ICON

경보등의 아이콘을 작은 이미지로 대체한다.

포털(JBoss, Websphere) 모니터링 추가

포털 제품들은 각각의 페이지의 URL을 암호화 하기 때문에 기존 방식으로는 각 애플리케이션의 구분이 용이하지 않다. 이에 JSR-168, JSR-286의 표준 API를 이용하여 포털 페이지에 포함되어 있는 포틀릿들의 이름을 조합하여 애플리케이션의 이름과 프로파일 정보를 재구성한다. 설정 옵션은 다음과 같다.

custom_trace_super=javax.portlet.GenericPortlet;org.apache.jetspeed.portlet.PortletAdapter
custom_trace_param_type=all
custom_trace_target_method=service
custom_trace_adapter_class_name=jennifer.custom.PortletTrace
custom_trace_adapter_class_path=/jennifer agent path/lwst40.custom.jar

기존에는 XView 유형을 사용자로 선택할 경우 클라이언트 아이디를 기준으로 트랜잭션 정보를 묶게 되는데 포털 모니터링시 로그인 사용자의 아이디를 기준으로 묶어주기 위해 다음과 같은 옵션을 제공한다.

enable_portal=true(기본값 false)

엑셀 보고서 출력시 소수점 자리 표기 문자 설정

국가에 따라 소수점 표기 문자를 설정해야 할 경우가 있다. 이런 경우 제니퍼 서버에 다음과 같은 옵션을 설정한다.

decimal_point_separator=.(기본값 .)

애플리케이션 별 경보 설정

기존에 일괄적으로 적용되던 경보처리의 임계치를 애플리케이션명의 패턴별로 설정할 수 있도록 하였다. 이 방식을 활성화시키려면 제니퍼 에이전트에 다음 옵션을 설정한다.

enable_group_bad_responsetime=true (default false)

다음으로 제니퍼 에이전트 옵션에 각 애플리케이션 별 패턴, 임계치 설정을 한다. 설정의 예는 다음과 같다.

group_bad_responsetime_01=*simula.jsp*, 10000
group_bad_responsetime_02=*test*, 5000

설정한 패턴은 중복 적용되지 않으며 상위에 설정된 옵션 설정이 우선시 된다. 일단 한번 매치되면 그 뒤의 패턴에 대한 비교가 이루어지지 않는다.

설정한 어떠한 패턴명에도 매치되지 않은 애플리케이션에는 app_bad_responsetime 옵션의 설정값이 적용된다.

MongoDB 모니터링 추가

MongoDB의 자바용 드라이버를 사용하여 실행되는 메서드들에 대한 실행정보를 XView, 통계 메뉴에서 확인할 수 있다.

현재는 2.6.5와 2.7.2 버전의 드라이버를 지원한다. (추가 지원 예정)

XView 상세

각 메서드의 실행내역, 소요시간, 파라미터 정보와 Fetch 정보를 볼 수 있다.

그림 4

파라미터

find: 검색조건 데이터
insert: 입력대상 데이터
update: 수정하는 데이터
delete: 삭제될 데이터

* 각 파라미터 데이터는 JSON 유형이다.

Fetch Count

만약 하나의 애플리케이션에서 RDB와 NoSQL DB를 혼재하여 사용할 경우 두 Fetch Count는 합산된다.

통계 정보

MongoDB 호출에 대한 정보를 외부 트랜젝션 탭에서 확인할 수 있다.

그림 5

에이전트 옵션

nosql_query_base_time

다수의 데이터를 NoSQL을 이용하여 처리시 에이전트가 서버에 전송하는 파라미터의 정보의 양이 많아질 수 있는데 드라이버 메서드의 실행 소요시간이 이 값보다 작은 경우 에이전트는 파라미터 정보를 서버로 전송하지 않는다.

기본적으로는 모든 파라미터 정보를 전송한다.