이전 항목: 계산기 사용다음 항목: MOM에서 JavaScript 계산기 실행


JavaScript 계산기 사용

JavaScript 계산기는 입력 메트릭을 읽고 사용자가 생성한 JavaScript 텍스트 파일에 지정된 계산에 따라 출력 메트릭을 생성합니다. 새로 계산된 메트릭은 계산기 스크립트에 지정된 출력 메트릭에 따라 Investigator 트리의 "Virtual Custom Agent"(가상 사용자 지정 에이전트) 아래 또는 Investigator 트리의 임의 노드에 나타날 수 있습니다. 계산된 메트릭은 종료할 수 있지만 이를 생성하는 계산기는 종료 상태를 알지 못합니다.

Enterprise Manager JavaScript 엔진을 사용하면 실행 중인 Enterprise Manager로 JavaScript 계산기를 핫 배포할 수 있습니다.

JavaScript 계산기 작성

JavaScript 계산기 파일은 확장명이 .js이고 Enterprise Manager의 스크립트 디렉터리에 있어야 합니다. Enterprise Manager 설치의 examples/scripts/ 디렉터리에 샘플 JavaScript 계산기 파일이 제공됩니다.

JavaScript 계산기는 입력 메트릭을 지정하고 하나 이상의 출력 메트릭을 생성합니다.

execute( ) 함수

각 계산기에는 두 개의 인수를 사용하는 execute() 함수가 있어야 합니다. 또한 Enterprise Manager에 다시 전송하기 위한 메트릭 구성에 도움이 되는 도우미 함수를 사용할 수 있습니다. 구문:

function execute(metricData,javascriptResultSetHelper)

설명:

execute() 함수는 스크립팅 엔진에 의해 15초마다 호출됩니다.

입력 메트릭 지정

계산기 스크립트는 다음 두 방법 중 하나로 수신하는 입력 메트릭을 지정할 수 있습니다.

참고: 함수 getAgentRegex() 및 함수 getMetricRegex()에서 문자열로 생성되는 정규식은 메트릭 그룹화나 "검색" 뷰와 같은 Introscope에서 사용하는 다른 정규식과는 다르게 이스케이프되는 문자를 사용해야 합니다. JavaScript에서는 이 JavaScript 함수에서 반환되는 모든 Java 이스케이프 문자도 이스케이프되어야 합니다. 따라서 '\|'의 경우 JavaScript에서 '\\|'로 이스케이프되어야 합니다.

글로벌 변수 로그

모든 JavaScript 계산기 함수는 IModuleFeedbackChannel 유형의 글로벌 변수 로그에 액세스할 수 있어야 합니다. 예:

function execute(metricData,javascriptResultSetHelper) {
log.info("message");
log.error("message");
log.debug("message");
}

참고: 고급 JavaScript 기능을 사용해야 하거나 ECMA를 준수해야 하는 경우에는 스크립트 엔진에 Mozilla Rhino JavaScript 라이브러리, 버전 1.6_R1이 포함되어 있음을 유의하십시오.

출력 메트릭 데이터 생성

출력 메트릭 데이터를 생성하려면 다음이 필요합니다.

스크립트를 통해 일반적으로 계산되는 값은 다음과 비슷합니다.

javascriptResultSetHelper.addMetric(metricName, heapUsedValue,Packages.com.wily.introscope.spec.metric.MetricTypes.kIntegerFluctuatingCounter,frequency)

참고: 정규식은 생성되는 모든 메트릭에 일치할 수 있으므로 주의해서 지정해야 합니다. 예를 들어 정규식 "EJB.*Time.*"은 EJB 아래에 새 값을 삽입할 수 있습니다. 즉, "EJB.*Time.*"에서 regex가 있는 경우 "EJB" 아래에 새 값이 삽입됩니다. 이를 위해 정규식을 변경하거나 자체 메트릭에서 메트릭 데이터를 제거할 수 있습니다.

JavaScript 계산기 추가

새 JavaScript 계산기를 설치하려면 JavaScript 텍스트 파일을 사용자 환경에 설치된 Enterprise Manager의 <EM_Home>/scripts 디렉터리에 복사하십시오. 스크립트에 다른 디렉터리를 사용할 수 있습니다. 이렇게 할 때는 introscope.enterprisemanager.javascript.dir 속성을 사용하여 디렉터리를 지정하십시오.

스크립트는 introscope.enterprisemanager.javascript.refresh 속성으로 지정된 빈도(기본값: 60초)에 따라 이 스크립트 디렉터리에서 자동으로 배포됩니다.

배포에 성공하면 새 메트릭이 메트릭 브라우저 트리에 나타납니다.