1. 모니터링을 위해 JAVA에 Application Insights 연결하기
준비
1. testweb(Remote Host)에 jar 파일 대기 - /home/user/
2. https://docs.microsoft.com/ko-kr/azure/azure-monitor/app/java-in-process-agent 에서 applicationinsights-agent.jar 다운로드하기
3. Azure Portal 에서 모니터 -> 어플리케이션 인사이트 -> 만들기
4. 3번완료시 생성된 연결문자열 복사해두기
터미널
$mkdir test // jar unzip할 디렉토리
$cd test // test 디렉토리 이동
$unzip '/path/to/user/jar' // test 디렉토리에서 jar 파일 unzip
$ls -al //unzip된 파일들 확인
프로젝트

1. spring boot application 에 'azure' 폴더 만들고 applicationinsights-agent.jar 파일 + applicationinsights.json + setting 용 xml 위치시키기
2. applicationinsights.json 파일에 "connectionString" 수정과 클라우드 역할(role) 인스턴스 이름 넣기
'connectionString' 이 부분에 아까 복사한 연결문자열을 넣어주면 된다

클라우드 역할 인스턴스 항목은 머신의 기본값이름으로 설정되기 때문에 json 파일 추가는 optional 하다. 하지만 이름ㅇ르 변경하고 싶다면 같은 json 파일 안에

이런 식으로 추가하면 된다. 보통 어플리케이션 이름으로 흔하게 설정한다.
3. jvm 인수 추가 - javaagent
intellij ru/debug configuration (windows: alt+shift+f10)
vm 옵션 추가 후, 필드에
javaagent:path/to/applicationinsights-agent-3.2.11.jar
추가
4. application run
-> log 에 다음과 같은 메세지가 기록됨
- ApplicationInsights Java Agent 3.2.11 started successfull
출처
https://docs.microsoft.com/ko-kr/azure/azure-monitor/app/java-in-process-agent
Azure Monitor: Application Insights Java - Azure Monitor
코드를 수정할 필요 없이 모든 환경에서 실행되는 Java 애플리케이션에 대한 애플리케이션 성능 모니터링입니다. 분산 추적 및 애플리케이션 맵.
docs.microsoft.com
2. Application Insights 라이브메트릭 설정
Application Insights의 라이브 메트릭은 applicationinsights.json 파일의 jmxMetrics 을 추가함으로써 Azure Portal 내에서 확인이 가능하다.

메트릭으로 확인해 보고싶은 항목을 objectname 으로 설정하여 라이브 메트릭에서 실시간으로 확인이 가능하다
라이브 메트릭 화면 예시는 아래와 같다

출처 https://docs.microsoft.com/en-us/azure/azure-monitor/app/java-standalone-config
Configuration options - Azure Monitor Application Insights for Java - Azure Monitor
How to configure Azure Monitor Application Insights for Java
docs.microsoft.com
이 포스팅과 무관하지만 jar unzip 시 항목들
[참고] Spring boot 는 BOOT-INF , META-INF , org 로 크게 3가지로 구성되어 있다.
1) BOOT-INFO : 클래스 파일들과 의존성이 있는 jar 파일들로 구성
2) META-INFO : MANIFEST.MF(프로젝트 매니패스트 파일) pom.xml(메이븐 설정 파일)
3) org
MANIFEST.MT 기존의 Java Jar 같은 경우에 Main-Class가 실제 Main Method (public static void main)가 있는 클래스로 설정되지만 Spring Boot 에서는 org.springframework.boot.loader.JarLauncher 라는 클래스로 설정됨
이는 Spring Boot 내부에서 의존성 라이브러리들이 존재하는 BOOT-INFO 폴더에서 Jar 파일들을 실행하는 방식으로 이뤄진다는 뜻
- org.springframework.boot.loader.jar.JarFile을 사용해서 내장 JAR를 읽음
- org.springframework.boot.loader.Launcher를 사용해서 실행
- 출처 : https://seongmun-hong.github.io/springboot/Spring-boot-Spring-Boot-Principal
Spring Boot 구동 원리
Spring Boot 구동 원리 Spring boot 는 빌드를 진행하면 Jar File이 나오게 된다. 이 Jar File 하나로 독립적으로 실행이 가능하다. 어떻게 이...
Seongmun-Hong.github.io
'Azure' 카테고리의 다른 글
| Azure Application Insights (0) | 2022.05.27 |
|---|