Share via


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.3applicationinsights-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.3applicationinsights-web으로 바꿉니다. 클라우드 역할 이름의 기본값은 더 이상 spring.application.name이 아닙니다. 클라우드 역할 이름을 구성하는 방법을 알아보려면 3.x 구성 문서를 참조하세요.

2단계: 3.x Java 에이전트 추가

JVM(Java Virtual Machine) 명령줄 인수에 3.x Java 에이전트를 추가합니다. 예를 들면 다음과 같습니다.

-javaagent:path/to/applicationinsights-agent-3.5.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개의 원격 분석 프로세서를 구성합니다. 원격 분석 프로세서는 다음 작업을 순서대로 수행합니다.

  1. 첫 번째 원격 분석 프로세서는 특성 프로세서(유형 attribute)입니다. 즉, 특성(현재 requestsdependencies, 곧 traces도)이 있는 모든 원격 분석에 적용됩니다.

    이름이 http.request.methodurl.path인 특성이 있는 모든 원격 분석과 일치합니다.

    그런 다음 url.path 특성을 tempName이라는 새 특성으로 추출합니다.

  2. 두 번째 원격 분석 프로세서는 범위 프로세서(유형 span)이며, 이는 requestsdependencies에 적용됨을 의미합니다.

    이름이 tempPath인 특성이 있는 모든 범위와 일치합니다.

    그런 다음 tempPath 특성에서 범위 이름을 업데이트합니다.

  3. 마지막 원격 분석 프로세서는 첫 번째 원격 분석 프로세서와 동일한 유형인 특성 프로세서입니다.

    이름이 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" }
        ]
      }
    ]
  }
}