Dynatrace Java OneAgent로 Spring Boot 앱을 모니터링하는 방법

참고 항목

Azure Spring Apps는 Azure Spring Cloud 서비스의 새 이름입니다. 서비스에 새 이름이 지정되었지만, 자산을 업데이트하는 동안 스크린샷, 비디오, 다이어그램과 같은 일부 위치에서는 당분간 이전 이름이 표시됩니다.

이 문서의 적용 대상: ✔️ 표준 사용량 및 전용(미리 보기) ✔️기본/표준 ❌ 엔터프라이즈

이 문서에서는 Dynatrace OneAgent를 사용하여 Azure Spring Apps에서 Spring Boot 애플리케이션을 모니터링하는 방법을 보여 줍니다.

Dynatrace OneAgent로 다음을 수행할 수 있습니다.

  • Dynatrace OneAgent로 앱을 모니터링합니다.
  • 환경 변수를 사용하여 Dynatrace OneAgent를 구성합니다.
  • Dynatrace 대시보드에서 모든 모니터링 데이터를 확인합니다.

다음 동영상은 Dynatrace OneAgent를 소개합니다.


필수 조건

Activate Dynatrace OneAgent

다음 섹션에서는 Dynatrace OneAgent를 활성화하는 방법을 설명합니다.

Azure Spring Apps 환경 준비

  1. Azure Spring Apps 인스턴스를 만듭니다.
  2. 다음 명령을 실행하여 Dynatrace에 보고할 애플리케이션을 만듭니다. <...> 자리 표시자를 고유한 값으로 바꿉니다.
    az spring app create \
        --resource-group <your-resource-group-name> \
        --service <your-Azure-Spring-Apps-name> \
        --name <your-application-name> \
        --is-public true
    

필요한 환경 변수의 값 결정

Azure Spring Apps 인스턴스에서 Dynatrace OneAgent를 활성화하려면 DT_TENANT, DT_TENANTTOKEN, DT_CONNECTION_POINTDT_CLUSTER_ID의 네 가지 환경 변수를 구성해야 합니다. 자세한 내용은 Azure Spring Apps와 OneAgent 통합을 참조하세요.

여러 인스턴스가 있는 애플리케이션의 경우 Dynatrace는 여러 가지 방법으로 인스턴스를 그룹화할 수 있습니다. DT_CLUSTER_ID가 하나의 방법입니다. 자세한 내용은 프로세스 그룹 검색을 참조하세요.

애플리케이션에 환경 변수 추가

Azure Portal 또는 Azure CLI를 사용하여 환경 변수 키/값 쌍을 애플리케이션에 추가할 수 있습니다.

옵션 1: Azure CLI

Azure CLI를 사용하여 키/값 쌍을 추가하려면 다음 명령을 실행하여 자리 표시자 <...>를 이전 단계에서 결정된 값으로 바꿉니다.

az spring app deploy \
    --resource-group <your-resource-group-name> \
    --service <your-Azure-Spring-Apps-name> \
    --name <your-application-name> \
    --artifact-path app.jar \
    --env \
        DT_TENANT=<your-environment-ID> \
        DT_TENANTTOKEN=<your-tenant-token> \
        DT_CONNECTION_POINT=<your-communication-endpoint>

옵션 2: Azure Portal

Azure Portal을 사용하여 키/값 쌍을 추가하려면 다음 단계를 사용합니다.

  1. Azure Spring Apps 인스턴스의 탐색 창에서 을 선택합니다.

    Azure Spring Apps 인스턴스에 대한 앱 페이지를 보여 주는 Azure Portal의 스크린샷

  2. 목록에서 애플리케이션을 선택한 다음, 탐색 창에서 구성 을 선택합니다.

  3. 환경 변수 탭을 사용하여 애플리케이션에서 사용하는 변수를 추가하거나 업데이트합니다.

    환경 변수 탭이 선택된 앱의 구성 페이지를 보여 주는 Azure Portal의 스크린샷

프로비저닝 자동화

Terraform, Bicep 또는 ARM 템플릿(Azure Resource Manager 템플릿)을 사용하여 프로비전 자동화 파이프라인을 실행할 수도 있습니다. 이 파이프라인은 사용자가 만들고 배포하는 모든 새 애플리케이션을 계측하고 모니터링하기 위한 완전한 자동 환경을 제공할 수 있습니다.

Terraform을 사용하여 프로비저닝 자동화

Terraform 템플릿에서 환경 변수를 구성하려면 템플릿에 다음 코드를 추가하고 <...> 자리 표시자를 고유한 값으로 바꿉니다. 자세한 내용은 활성 Azure Spring Apps 배포 관리를 참조하세요.

environment_variables = {
  "DT_TENANT": "<your-environment-ID>",
  "DT_TENANTTOKEN": "<your-tenant-token>",
  "DT_CONNECTION_POINT": "<your-communication-endpoint>",
  "DT_CLUSTER_ID": "<your-cluster-ID>"
}

Bicep 파일을 사용하여 프로비전 자동화

Bicep 파일에서 환경 변수를 구성하려면 파일에 다음 코드를 추가하여 <...> 자리 표시자를 고유한 값으로 바꿉니다. 자세한 내용은 Microsoft.AppPlatform Spring/apps/deployments를 참조하세요.

environmentVariables: {
  DT_TENANT: '<your-environment-ID>'
  DT_TENANTTOKEN: '<your-tenant-token>'
  DT_CONNECTION_POINT: '<your-communication-endpoint>'
  DT_CLUSTER_ID: '<your-cluster-ID>'
}

ARM 템플릿을 사용하여 프로비전 자동화

ARM 템플릿에서 환경 변수를 구성하려면 템플릿에 다음 코드를 추가하고 <...> 자리 표시자를 고유한 값으로 바꿉니다. 자세한 내용은 Microsoft.AppPlatform Spring/apps/deployments를 참조하세요.

"environmentVariables": {
  "DT_TENANT": "<your-environment-ID>",
  "DT_TENANTTOKEN": "<your-tenant-token>",
  "DT_CONNECTION_POINT": "<your-communication-endpoint>",
  "DT_CLUSTER_ID": "<your-cluster-ID>"
}

Dynatrace에서 보고서 보기

이 섹션에서는 Dynatrace에서 다양한 보고서를 찾는 방법을 설명합니다.

참고 항목

Dynatrace 메뉴와 사용자 인터페이스는 점진적으로 발전할 것입니다. 이러한 이유로 대시보드는 Dynatrace 웹 사이트의 다른 섹션으로 이동될 수 있으며 다음 스크린샷은 사용자 인터페이스의 현재 버전을 반영하지 않을 수 있습니다.

환경 변수를 애플리케이션에 추가하면 Dynatrace가 데이터 수집을 시작합니다. 보고서를 보려면 Dynatrace 메뉴를 사용하고 서비스로 이동한 다음 애플리케이션을 선택합니다.

<your-app-name>/Details/Service flow에서 서비스 흐름을 찾을 수 있습니다.

Dynatrace 서비스 흐름 보고서의 스크린샷

<your-app-name>/Details/Method hotspots에서 메서드 핫스폿을 찾을 수 있습니다.

Dynatrace 메서드 핫스폿' 보고서의 스크린샷

<your-app-name>/Details/Response time analysis에서 데이터베이스 문을 찾을 수 있습니다.

Dynatrace 응답 시간 분석 보고서 및 데이터베이스 문 섹션의 스크린샷

그런 다음 다차원 분석 섹션으로 이동합니다.

다차원 분석/상위 데이터베이스 문에서 상위 데이터베이스 문을 찾을 수 있습니다.

Dynatrace 상위 데이터베이스 문 보고서의 스크린샷

다차원 분석/예외 개요에서 예외 개요를 찾을 수 있습니다.

Dynatrace 예외 개요 보고서의 스크린샷

그런 다음 프로파일링 및 최적화 섹션으로 이동합니다.

프로파일링 및 최적화/CPU 분석에서 CPU 분석을 찾을 수 있습니다.

Dynatrace CPU 분석 보고서의 스크린샷

그런 다음 데이터베이스 섹션으로 이동합니다.

데이터베이스/세부 정보/역추적에서 역추적를 찾을 수 있습니다.

Dynatrace 역추적 보고서의 스크린샷

Dynatrace OneAgent 로그 보기

기본적으로 Azure Spring Apps는 Dynatrace OneAgent의 정보 수준 로그를 STDOUT에 인쇄합니다. 로그는 애플리케이션 로그와 혼합됩니다. 애플리케이션 로그에서 명시적 에이전트 버전을 확인할 수 있습니다.

다음 위치에서 Dynatrace 에이전트의 로그를 가져올 수도 있습니다.

  • Azure Spring Apps 로그
  • Azure Spring Apps Application Insights
  • Azure Spring Apps LogStream

Dynatrace에서 제공하는 일부 환경 변수를 적용하여 Dynatrace OneAgent에 대한 로깅을 구성할 수 있습니다. 예를 들어, DT_LOGLEVELCON은 로그 수준을 제어합니다. DT_LOGLEVELCON 의 기본값은 info입니다. DT_LOGLEVELCONoff로 설정하여 에이전트의 로그를 사용하지 않도록 설정할 수 있습니다. 로깅을 사용하지 않도록 설정하면 Dynatrace는 에이전트 문제를 효과적으로 진단하기 위해 먼저 로깅을 사용하도록 설정하는 요청을 지원합니다. 그런 다음 변경 내용이 적용되는 데 필요한 앱을 다시 시작해야 합니다. 다른 로그 수준은 Dynatrace 지원 팀에 문의하세요.

주의

Dynatrace용 Azure Spring Apps에서 제공하는 기본 로깅 동작을 재정의하지 않는 것이 좋습니다. 재정의하는 경우 앞에서 설명한 로깅 시나리오가 차단되고 로그 파일이 손실될 수 있습니다. 예를 들어 DT_LOGLEVELFILE 환경 변수를 애플리케이션에 출력해서는 안 됩니다.

Dynatrace OneAgent 업그레이드

Dynatrace OneAgent 자동 업그레이드는 사용하지 않도록 설정되어 있으며 JDK를 사용하여 분기별로 업그레이드됩니다. 에이전트 업그레이드는 다음 시나리오에 영향을 줄 수 있습니다.

  • 업그레이드 전에 Dynatrace OneAgent를 사용하는 기존 애플리케이션은 변경되지 않지만 Dynatrace OneAgent의 새 버전을 사용하려면 다시 시작하거나 재배포해야 합니다.
  • 업그레이드 후에 만들어진 애플리케이션은 Dynatrace OneAgent의 새 버전을 사용합니다.

가상 네트워크 주입 인스턴스 아웃바운드 트래픽 구성

Azure Spring Apps의 가상 네트워크 주입 인스턴스의 경우 Dynatrace 통신 엔드포인트에 대한 아웃바운드 트래픽이 Dynatrace OneAgent에 대해 올바르게 구성되었는지 확인해야 합니다. communicationEndpoints를 가져오는 방법에 대한 자세한 내용은 배포 API - OneAgent에 대한 GET 연결 정보를 참조하세요. 자세한 내용은 가상 네트워크에서 Azure Spring Apps 실행에 대한 고객 책임을 참조하세요.

Dynatrace 지원 모델

Dynatrace OneAgent를 애플리케이션 전용 모드로 배포할 때의 제한 사항에 대한 자세한 내용은 OneAgent 플랫폼 및 기능 지원 매트릭스클라우드 애플리케이션 플랫폼 섹션을 참조하세요.

다음 단계

Azure Spring Apps에서 Application Insights Java In-Process 에이전트 사용