New Relic Java 에이전트를 사용하여 Spring Boot 앱을 모니터링하는 방법

참고 항목

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

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

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

New Relic Java 에이전트를 사용하면 다음을 수행할 수 있습니다.

  • New Relic Java 에이전트를 사용합니다.
  • 환경 변수를 사용하여 New Relic Java 에이전트를 구성합니다.
  • New Relic 대시보드에서 모든 모니터링 데이터를 확인합니다.

다음 비디오에서는 New Relic One을 사용하여 Azure Spring Apps에서 Spring Boot 애플리케이션을 활성화하고 모니터링하는 방법을 설명합니다.


필수 조건

프로세스 에이전트에서 New Relic Java 활성화

다음 절차에 따라 에이전트에 액세스합니다.

  1. Azure Spring Apps 인스턴스를 만듭니다.

  2. 애플리케이션을 만듭니다.

    az spring app create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name <app-name> \
        --is-public true \
    
  3. New Relic 에이전트 및 환경 변수를 사용하여 배포를 만듭니다.

    az spring app deploy \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name <app-name> \
        --artifact-path app.jar \
        --jvm-options="-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar" \
        --env NEW_RELIC_APP_NAME=appName \
              NEW_RELIC_LICENSE_KEY=newRelicLicenseKey
    

Azure Spring Apps는 New Relic Java 에이전트를 /opt/agents/newrelic/java/newrelic-agent.jar에 미리 설치합니다. 고객은 애플리케이션의 JVM 옵션에서 에이전트를 활성화하고, New Relic Java 에이전트 환경 변수를 사용하여 에이전트를 구성할 수 있습니다.

Azure Portal

다음 절차를 통해 Azure Portal에서 이 에이전트를 활성화할 수도 있습니다.

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

    Screenshot of the Azure portal showing the Apps page for an Azure Spring Apps instance.

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

  3. 일반 설정 탭을 사용하여 JVM 옵션과 같은 값을 업데이트합니다.

    Screenshot of the Azure portal showing the Configuration page for an app with the General settings tab selected.

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

    Screenshot of the Azure portal showing the Configuration page for an app with the Environment variables tab selected.

  5. New Relic 대시보드에서 애플리케이션 API/게이트웨이 요약 페이지를 봅니다.

    Screenshot of the New Relic dashboard showing the API Gateway summary page.

  6. New Relic 대시보드에서 애플리케이션 customers-service 요약 페이지를 봅니다.

    Screenshot of the New Relic dashboard showing the Customers Service page.

  7. New Relic 대시보드에서 서비스 맵 페이지를 봅니다.

    Screenshot of the New Relic dashboard showing the Service Map page.

  8. New Relic 대시보드에서 애플리케이션의 JVM 페이지를 봅니다.

    Screenshot of the New Relic dashboard showing the JVM page.

  9. New Relic 대시보드에서 애플리케이션 프로필을 봅니다.

    Screenshot of the New Relic dashboard showing the Application Profile page.

프로비저닝 자동화

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

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

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

resource "azurerm_spring_cloud_java_deployment" "example" {
  ...
  jvm_options = "-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar"
  ...
    environment_variables = {
      "NEW_RELIC_APP_NAME": "<app-name>",
      "NEW_RELIC_LICENSE_KEY": "<new-relic-license-key>"
  }
}

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

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

deploymentSettings: {
  environmentVariables: {
    NEW_RELIC_APP_NAME : '<app-name>',
    NEW_RELIC_LICENSE_KEY : '<new-relic-license-key>'
  },
  jvmOptions: '-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar',
  ...
}

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

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

"deploymentSettings": {
  "environmentVariables": {
    "NEW_RELIC_APP_NAME" : "<app-name>",
    "NEW_RELIC_LICENSE_KEY" : "<new-relic-license-key>"
  },
  "jvmOptions": "-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar",
  ...
}

애플리케이션 로그를 New Relic으로 전달

New Relic 에이전트는 앱에서 직접 애플리케이션 로그를 수집하여 New Relic에 전달할 수 있습니다. 자세한 내용은 New Relic으로 로그 전달컨텍스트에 따른 APM 로그를 참조하세요.

New Relic Java 에이전트 로그 보기

기본적으로 Azure Spring 앱은 New Relic Java 에이전트의 로그를 STDOUT에 인쇄합니다. 로그는 애플리케이션 로그와 혼합됩니다. 애플리케이션 로그에서 명시적 에이전트 버전을 확인할 수 있습니다.

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

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

New Relic에서 제공하는 일부 환경 변수를 사용하여 새 에이전트(예: NEW_RELIC_LOG_LEVEL)의 로깅을 구성하여 로그 수준을 제어할 수 있습니다. 자세한 내용은 New Relic 로깅 구성을 참조하세요.

참고 항목

New Relic 지원팀에서 요청하지 않는 한 finer 또는 finest를 사용하지 마세요. 이러한 로깅 수준은 과도한 오버헤드를 생성할 수 있습니다. 대부분의 상황에서는 info를 사용합니다.

주의

New Relic용 Azure Spring Apps에서 제공하는 로깅 기본 동작은 재정의하지 않는 것이 좋습니다. 그렇게 하면 앞에서 설명한 로깅 시나리오가 차단되고 로그 파일이 손실될 수 있습니다. 예를 들어, 다음 환경 변수를 애플리케이션에 전달하면 안 됩니다. 애플리케이션을 다시 시작하거나 재배포한 후 로그 파일이 손실될 수 있습니다.

  • NEW_RELIC_LOG
  • NEW_RELIC_LOG_FILE_PATH

New Relic Java 에이전트 업데이트/업그레이드

New Relic Java 에이전트는 JDK를 정기적으로 업데이트/업그레이드합니다. 에이전트 업데이트/업그레이드는 다음 시나리오에 영향을 미칠 수 있습니다.

  • 업데이트/업그레이드 전 New Relic Java 에이전트를 사용하는 기존 애플리케이션은 변경되지 않습니다.
  • 업데이트/업그레이드 전에 New Relic Java 에이전트를 사용하는 기존 애플리케이션은 New Relic Java 에이전트의 새 버전을 사용하기 위해 다시 시작하거나 다시 배포해야 합니다.
  • 업데이트/업그레이드 후에 만든 새 애플리케이션은 New Relic Java 에이전트의 새 버전을 사용합니다.

Vnet 삽입 인스턴스 아웃바운드 트래픽 구성

Azure Spring Apps의 vnet 삽입 인스턴스에서는 New Relic Java 에이전트에 대해 아웃바운드 트래픽이 올바르게 구성되었는지 확인해야 합니다. 자세한 내용은 New Relic 네트워크를 참조하세요.

다음 단계

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