Мониторинг приложений Spring Boot с помощью агента New Relic для Java

Примечание.

Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.

Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.

Эта статья относится к: ✔️ стандартное потребление и выделенная (предварительная версия) ✔️ Basic/Standard ❌ Enterprise

В этой статье показано, как осуществлять мониторинг приложения Spring Boot в Azure Spring Apps с помощью агента New Relic Java.

С помощью агента New Relic для Java можно:

  • использовать агент New Relic для Java;
  • настроить агент New Relic для Java с помощью переменных среды;
  • изучить все данные мониторинга с панели мониторинга New Relic.

В приведенном ниже видео показано, как с помощью New Relic One активировать и отслеживать приложения Spring Boot, выполняющиеся в Azure Spring Apps.


Необходимые компоненты

  • Учетная запись New Relic.
  • Azure CLI версии 2.0.67 или более поздней.

Активация внутрипроцессного агента 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 предустановит агент Java New Relic для /opt/agent/newrelic/java/newrelic-agent.jar. Клиенты могут активировать агент из параметров JVM приложений и настроить агент с помощью переменных среды агента New Relic Java.

Портал Azure

Этот агент также можно активировать из портал Azure с помощью следующей процедуры.

  1. В экземпляре Azure Spring Apps выберите "Приложения " в области навигации.

    Снимок экрана: портал Azure с страницей

  2. Выберите приложение из списка и выберите "Конфигурация " в области навигации.

  3. Используйте вкладку "Общие параметры" для обновления значений, таких как параметры JVM.

    Снимок экрана: портал Azure со страницей

  4. Выберите переменные среды, чтобы добавить или обновить переменные , используемые приложением.

    Снимок экрана: портал Azure со страницей конфигурации приложения с выбранной вкладкой переменных среды.

  5. Просмотрите страницу сводки по API или шлюзу приложений на панели мониторинга New Relic.

    Снимок экрана: панель мониторинга New Relic с сводной страницей шлюза API.

  6. Просмотрите страницу Сводка приложения для customers-service на панели мониторинга New Relic.

    Снимок экрана: панель мониторинга New Relic со страницей

  7. Просмотрите страницу Схема услуги на панели мониторинга New Relic.

    Снимок экрана: панель мониторинга New Relic с страницей

  8. Просмотрите страницу Виртуальные машины Java приложения на панели мониторинга New Relic.

    Снимок экрана: панель мониторинга New Relic с страницей JVM.

  9. Просмотрите профиль приложения на панели мониторинга New Relic.

    Снимок экрана: панель мониторинга New Relic со страницей

Автоматизация подготовки

Вы также можете запустить конвейер автоматизации подготовки с помощью Terraform, Bicep или шаблона Azure Resource Manager (шаблон ARM). Этот конвейер может предоставить полный практический опыт для инструментирования и отслеживания новых создаваемых и развертываемых приложений.

Автоматизация подготовки с помощью Terraform

Чтобы настроить переменные среды в шаблоне Terraform, добавьте в него приведенный ниже код, заменив заполнители <…> собственными значениями. Дополнительные сведения см.на странице Manages an Active Azure Spring Apps Deployment (Управление развертыванием Active 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 Apps выводит журналы агента STDOUTNew Relic Java в . Журналы смешиваются с журналами приложений. Явную версию агента можно найти в журналах приложений.

Кроме того, журналы агента New Relic можно получить из следующих мест:

  • журналы Azure Spring Apps;
  • Application Insights для Azure Spring Apps;
  • LogStream для Azure Spring Apps.

Для настройки ведения журнала нового агента можно использовать некоторые переменные среды, предоставляемые New Relic, например NEW_RELIC_LOG_LEVEL , для управления уровнем журналов. Дополнительные сведения см. в разделе "Настройка ведения журнала New Relic".

Примечание.

Не используйте finer или finest не используете службу поддержки New Relic. Эти уровни ведения журнала могут создавать чрезмерные затраты. Для большинства ситуаций используйте info.

Внимание

Настоятельно рекомендуется не переопределить поведение ведения журнала по умолчанию, предоставленное Azure Spring Apps для New Relic. Если это сделать, описанные ранее сценарии ведения журнала блокируются, а файлы журнала могут быть потеряны. Например, не следует передавать в приложения следующие переменные среды. Файлы журнала могут быть потеряны после перезапуска или повторного развертывания приложений.

  • 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.

Конфигурация исходящего трафика для экземпляра внедрения виртуальной сети

Для экземпляра внедрения виртуальной сети Azure Spring Apps необходимо убедиться, что исходящий трафик настроен правильно для агента New Relic для Java. Дополнительные сведения см. в разделе Сети New Relic.

Следующие шаги

Использование внутрипроцессного агента Java Application Insights в Azure Spring Apps