Application Insights Java 2.x SDK에서 업그레이드
일반적으로 3.x로 업그레이드할 때는 코드 변경이 없습니다. 3.x SDK 종속성은 2.x SDK 종속성의 no-op API 버전입니다. 그러나 3.x Java 에이전트와 함께 사용할 경우 3.x Java 에이전트가 구현을 제공합니다. 따라서 사용자 지정 계측은 3.x Java 에이전트에서 제공하는 모든 새 자동 계측과 상관 관계가 있습니다.
1단계: 종속성 업데이트
2.x 종속성 | 작업 | 설명 |
---|---|---|
applicationinsights-core |
버전을 3.4.3 이상으로 업데이트합니다. |
|
applicationinsights-web |
버전을 3.4.3 이상으로 업데이트하고 web.xml 파일에 대한 Application Insights 웹 필터를 제거합니다. |
|
applicationinsights-web-auto |
3.4.3 을 applicationinsights-web 으로 바꿉니다. |
|
applicationinsights-logging-log4j1_2 |
종속성을 제거하고 Log4j 구성에서 Application Insights 부록을 제거합니다. | Log4j 1.2는 3.x Java 에이전트에서 자동 계측되므로 더 이상 필요하지 않습니다. |
applicationinsights-logging-log4j2 |
종속성을 제거하고 Log4j 구성에서 Application Insights 부록을 제거합니다. | Log4j 2는 3.x Java 에이전트에서 자동 계측되므로 더 이상 필요하지 않습니다. |
applicationinsights-logging-logback |
종속성을 제거하고 Logback 구성에서 Application Insights 부록을 제거합니다. | Logback은 3.x Java 에이전트에서 자동 계측되므로 더 이상 필요하지 않습니다. |
applicationinsights-spring-boot-starter |
3.4.3 을 applicationinsights-web 으로 바꿉니다. |
클라우드 역할 이름의 기본값은 더 이상 spring.application.name 이 아닙니다. 클라우드 역할 이름을 구성하는 방법을 알아보려면 3.x 구성 문서를 참조하세요. |
2단계: 3.x Java 에이전트 추가
JVM(Java Virtual Machine) 명령줄 인수에 3.x Java 에이전트를 추가합니다. 예를 들면 다음과 같습니다.
-javaagent:path/to/applicationinsights-agent-3.6.2.jar
Application Insights 2.x Java 에이전트를 사용하는 경우 기존 -javaagent:...
를 이전 예로 바꾸면 됩니다.
참고 항목
spring-boot-starter를 사용 중이고 원하는 경우 Java 에이전트를 사용하는 대안이 있습니다. 3.x Spring Boot를 참조하세요.
3단계: Application Insights 연결 문자열 구성
연결 문자열 구성을 참조하세요.
기타 참고 사항
이 문서의 나머지 부분에서는 2.x에서 3.x로 업그레이드할 때 발생할 수 있는 제한 사항 및 변경 내용과 도움이 될 수 있는 몇 가지 해결 방법에 대해 설명합니다.
TelemetryInitializers
2.x SDK TelemetryInitializers는 3.x 에이전트를 사용할 때 실행되지 않습니다.
이전에 TelemetryInitializer
을(를) 써야 했던 많은 사용 사례는 사용자 지정 차원을 구성하여 Application Insights Java 3.x에서 해결할 수 있습니다.
또는 상속된 특성을 사용합니다.
TelemetryProcessors
2.x SDK TelemetryProcessors는 3.x 에이전트를 사용할 때 실행되지 않습니다.
이전에 TelemetryProcessor
을(를) 써야 했던 많은 사용 사례는 샘플링 재정의를 구성하여 Application Insights Java 3.x에서 해결할 수 있습니다.
단일 JVM의 여러 애플리케이션
이 사용 사례는 클라우드 역할 이름 재정의(미리 보기) 및/또는 연결 문자열 재정의(미리 보기)를 사용하여 Application Insights Java 3.x에서 지원됩니다.
작업 이름
Application Insights Java 2.x SDK에서 작업 이름에 전체 경로가 포함된 경우도 있음(예:
Application Insights Java 3.x의 작업 이름은 일반적으로 Application Insights Portal U/X에서 더 나은 집계 보기를 제공하도록 변경되었음(예:
그러나 일부 애플리케이션의 경우 이전 작업 이름에서 제공한 U/X에서 집계된 보기를 선호할 수 있습니다. 이 경우 3.x에서 원격 분석 프로세서(미리 보기) 기능을 사용하여 이전 동작을 복제할 수 있습니다.
아래 코드 조각은 이전 동작을 복제하기 위해 결합된 3개의 원격 분석 프로세서를 구성합니다. 원격 분석 프로세서는 다음 작업을 순서대로 수행합니다.
첫 번째 원격 분석 프로세서는 특성 프로세서(유형
attribute
)입니다. 즉, 특성(현재requests
및dependencies
, 곧traces
도)이 있는 모든 원격 분석에 적용됩니다.이름이
http.request.method
및url.path
인 특성이 있는 모든 원격 분석과 일치합니다.그런 다음
url.path
특성을tempName
이라는 새 특성으로 추출합니다.두 번째 원격 분석 프로세서는 범위 프로세서(유형
span
)이며, 이는requests
및dependencies
에 적용됨을 의미합니다.이름이
tempPath
인 특성이 있는 모든 범위와 일치합니다.그런 다음
tempPath
특성에서 범위 이름을 업데이트합니다.마지막 원격 분석 프로세서는 첫 번째 원격 분석 프로세서와 동일한 유형인 특성 프로세서입니다.
이름이
tempPath
인 특성이 있는 모든 원격 분석과 일치합니다.그런 다음
tempPath
라는 특성을 삭제하고 해당 특성이 사용자 지정 차원으로 표시됩니다.
{
"preview": {
"processors": [
{
"type": "attribute",
"include": {
"matchType": "strict",
"attributes": [
{ "key": "http.request.method" },
{ "key": "url.path" }
]
},
"actions": [
{
"key": "url.path",
"pattern": "https?://[^/]+(?<tempPath>/[^?]*)",
"action": "extract"
}
]
},
{
"type": "span",
"include": {
"matchType": "strict",
"attributes": [
{ "key": "tempPath" }
]
},
"name": {
"fromAttributes": [ "http.request.method", "tempPath" ],
"separator": " "
}
},
{
"type": "attribute",
"include": {
"matchType": "strict",
"attributes": [
{ "key": "tempPath" }
]
},
"actions": [
{ "key": "tempPath", "action": "delete" }
]
}
]
}
}
프로젝트 예제
이 Java 2.x SDK 프로젝트는 3.x Java 에이전트를 사용하여 새 프로젝트로 마이그레이션됩니다.