2진 인스트루먼터를 사용하여 런타임 시 애플리케이션 인스트루먼트
2진 인스트루먼터를 사용하여 애플리케이션 데이터를 수집할 수 있습니다. 인스트루먼테이션이 사용 가능한 상태에서 애플리케이션을 실행하는 것은 Java ® 모놀리식 애플리케이션을 파티션으로 리팩토링하는 초기 단계입니다.
2진 인스트루먼트 (minerva-agent-1.0.jar
) 는 Java 모놀리식 애플리케이션의 바이트 코드를 인스트루먼트하여 이러한 애플리케이션이 실행될 때 런타임 추적이 수집되도록 하는 Java기반 에이전트입니다. 2진 인스트루먼트 프로그램은 생성자를 포함하여 모든 클래스 메소드에서 System.err.println("Entering...")
및 System.err.println("Exiting...")
양식으로 인스트루먼테이션 명령문을 동적으로 삽입합니다.
인스트루먼트 프로그램은 애플리케이션 Java 소스 파일을 스캔할 때 코드 분석기에 의해 작성된 세 개의 JSON 파일을 사용합니다. JSON 파일에는 스캔된 클래스 및 2진 인스트루먼트 구성에 대한 메타데이터가 포함되어 있습니다. 메타데이터에는 클래스 이름, 유형이 지정된 멤버 속성, 생성자, 입력 인수 및 리턴 유형이 있는 메소드, 클래스의 소스 파일 위치와 같은 정보가 포함됩니다.
2진 인스트루먼터는 애플리케이션의 변수 값을 인쇄하지 않습니다. 인스트루먼테이션의 목적은 런타임 동안 모든 변수의 값이 아니라 클래스의 다양한 메소드 및 생성자를 통해 시간 플로우를 기록하는 것입니다.
전제조건
시스템 요구사항 및 다음 요구사항을 충족하는지 확인하십시오.
- 애플리케이션이 WebSphere® Application Server 또는 Liberty와 같은 서버에 설치되어 실행 중입니다.
- 코드 분석기를 실행하십시오.
프로시저
코드 분석기를 실행한 후 작성된 세 개의 JSON 파일을 포함하는 디렉토리가 있는지 확인하십시오.
- symTable.json 파일
- refTable.json 파일
- instrumenter-config.json 파일
이러한 JSON 파일을 다른 위치에 복사하는 경우 동일한 디렉터리에 그룹화되어 있는지 확인하십시오.
JVM (Java Virtual Machine) 에 다음 인수를 추가하여 Application Server를 구성하십시오.
-javaagent:<agent-install-path>/minerva-agent-1.0.jar=<agent-config-path>
변수를 디렉토리 경로로 바꾸십시오. 운영 체제에 적합한 경로 분리자 문자를 사용해야 합니다.
- <agent-install-path> 는 minerva-agent-1.0.jar 파일을 포함하는 디렉토리의 완전한 경로이며, Mono2Micro-CLI.zip 다운로드 가능한 번들에 포함되어 있습니다.
- <agent-config-path> 는 코드 분석기에 의해 작성되는 세 개의 JSON 파일을 포함하는 디렉토리의 완전한 경로입니다.
예를 들어, Mono2Micro-CLI.zip 를 /m2m-cli/에 추출한 경우 <agent-install-path> 는 /m2m-cli/instrumenter 이고 <agent-config-path> 는 ~/myapp/src-mono2micro/입니다. JVM에 다음 인수를 추가하여 애플리케이션 서버를 구성합니다.
-javaagent:/m2m-cli/instrumenter/minerva-agent-1.0.jar=~/myapp/src-mono2micro/
애플리케이션이 WebSphere Application Server에 설치되어 실행 중인 경우 관리 콘솔 을 사용하여 JVM 인수를 지정할 수 있습니다.
애플리케이션이 Liberty에 설치되어 실행 중인 경우 jvm.options 파일을 작성하거나 업데이트하여 JVM 인수를 지정하십시오.
- -javaagent JVM 인수가 사용으로 설정된 상태로 애플리케이션 서버 및 애플리케이션을 시작하십시오.
결과
추적 출력이 하나 이상의 로그 파일에 추가됩니다.
다음에 수행할 작업
비프로덕션이지만 대표적인 환경에서 애플리케이션을 배치하십시오. 애플리케이션을 배치하는 데 사용하는 동일한 프로세스를 따르십시오. 환경에 따라 애플리케이션은 베어 메탈 머신, 가상 머신 또는 컨테이너에 있을 수 있습니다.
Java 모놀리식 애플리케이션이 2진인스트루먼트가 사용으로 설정된 상태에서 실행되면 런타임 추적 파일이 생성됩니다. 파티션 권장사항을 생성하는 AI 엔진에 대한 입력으로 코드 분석기, 2진 인스트루먼테이션 및 유스 케이스 레코더 의 정보를 사용하십시오.