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

Примечание.

Azure Spring Apps — это новое название службы Azure Spring Cloud. Старое название будет еще некоторое время встречаться в наших материалах, пока мы не обновим ресурсы, такие как снимки экрана, видео и схемы.

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

В этой статье описывается, как использовать агент Java AppDynamics для мониторинга приложений Spring Boot в Azure Spring Apps

Агент Java AppDynamics предоставляет следующие возможности:

  • Мониторинг приложений
  • настройка агента Java AppDynamics с помощью переменных среды;
  • проверка всех данных мониторинга на панели мониторинга AppDynamics.

В следующем видео представлено ознакомительное описание внутрипроцессного агента Java AppDynamics.


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

Активация внутрипроцессного агента Java AppDynamics

Для всего рабочего процесса потребуется следующее.

  • Активируйте внутрипроцессный агент Java AppDynamics в Azure Spring Apps для создания данных о метриках приложения.
  • Подключите агент AppDynamics к контроллеру AppDynamics для сбора и визуализации данных из контроллера.

Схема, на которую показан агент AppDynamics с двусторонней стрелкой в Spring Boot Apps в Azure Spring Apps и стрелка, указывающая на агент AppDynamics.

Активация приложения с агентом AppDynamics с помощью Azure CLI

Чтобы активировать приложение с помощью Azure CLI, выполните следующие действия.

  1. Создать группу ресурсов.

  2. Создайте экземпляр Azure Spring Apps.

  3. Создайте приложение с помощью следующей команды. Замените значения заполнителей <...> на собственные.

    az spring app create \
        --resource-group "<your-resource-group-name>" \
        --service "<your-Azure-Spring-Apps-instance-name>" \
        --name "<your-app-name>" \
        --is-public true
    
  4. Создайте развертывание с помощью агента AppDynamics, настроив переменные среды.

    az spring app deploy \
        --resource-group "<your-resource-group-name>" \
        --service "<your-Azure-Spring-Apps-instance-name>" \
        --name "<your-app-name>" \
        --artifact-path app.jar \
        --jvm-options="-javaagent:/opt/agents/appdynamics/java/javaagent.jar" \
        --env APPDYNAMICS_AGENT_APPLICATION_NAME=<your-app-name> \
              APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=<your-agent-access-key> \
              APPDYNAMICS_AGENT_ACCOUNT_NAME=<your-agent-account-name> \
              APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME=true \
              APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX=<your-agent-node-name> \
              APPDYNAMICS_AGENT_TIER_NAME=<your-agent-tier-name> \
              APPDYNAMICS_CONTROLLER_HOST_NAME=<your-AppDynamics-controller-host-name> \
              APPDYNAMICS_CONTROLLER_SSL_ENABLED=true \
              APPDYNAMICS_CONTROLLER_PORT=443
    

Azure Spring Apps предварительно устанавливает агент Java AppDynamics в пути /opt/agents/appdynamics/java/javaagent.jar. Агент можно активировать на странице параметров виртуальной машины Java для приложения, а затем настроить его с помощью переменных среды. Нужные значения переменных можно найти на странице Monitor Azure Spring Apps with Java Agent (Мониторинг Azure Spring Apps с помощью агента Java). Дополнительные сведения о том, как использовать переменные для просмотра и упорядочения отчетов в пользовательском интерфейсе AppDynamics, см. на странице Tiers and Nodes (Уровни и узлы).

Активация приложения с агентом AppDynamics с помощью портала Azure

Чтобы активировать приложение с помощью портала Azure, выполните следующие действия.

  1. Перейдите к нужному экземпляру службы Azure Spring Apps на портале Azure.

  2. Выберите приложения в разделе Параметры области навигации.

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

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

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

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

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

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

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

Вы также можете запустить конвейер автоматизации подготовки с помощью шаблона 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/appdynamics/java/javaagent.jar"
  ...
    environment_variables = {
      "APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
      "APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
      "APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
      "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
      "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
      "APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
      "APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
      "APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
      "APPDYNAMICS_CONTROLLER_PORT" : "443"
  }
}

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

Чтобы настроить переменные среды в файле Bicep, добавьте следующий код в файл, заменив <заполнители ...> собственными значениями. Дополнительные сведения см. в разделе Microsoft.AppPlatform Spring/apps/deployments.

deploymentSettings: {
  environmentVariables: {
    APPDYNAMICS_AGENT_APPLICATION_NAME : '<your-app-name>'
    APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY : '<your-agent-access-key>'
    APPDYNAMICS_AGENT_ACCOUNT_NAME : '<your-agent-account-name>'
    APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME : 'true'
    APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX : '<your-agent-node-name>'
    APPDYNAMICS_AGENT_TIER_NAME : '<your-agent-tier-name>'
    APPDYNAMICS_CONTROLLER_HOST_NAME : '<your-AppDynamics-controller-host-name>'
    APPDYNAMICS_CONTROLLER_SSL_ENABLED : 'true'
    APPDYNAMICS_CONTROLLER_PORT : '443'
  }
  jvmOptions: '-javaagent:/opt/agents/appdynamics/java/javaagent.jar'
}

Автоматизация подготовки с помощью шаблона ARM

Чтобы настроить переменные среды в шаблоне ARM, добавьте в него приведенный ниже код, заменив заполнители <…> собственными значениями. Дополнительные сведения см. в разделе Microsoft.AppPlatform Spring/apps/deployments.

"deploymentSettings": {
  "environmentVariables": {
    "APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
    "APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
    "APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
    "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
    "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
    "APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
    "APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
    "APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
    "APPDYNAMICS_CONTROLLER_PORT" : "443"
  },
  "jvmOptions": "-javaagent:/opt/agents/appdynamics/java/javaagent.jar",
  ...
}

Просмотр отчетов на панели мониторинга AppDynamics

В этом разделе описаны несколько отчетов из AppDynamics.

На следующем снимке экрана представлен раздел обзорных сведений о приложении на панели мониторинга AppDynamics:

Снимок экрана AppDynamics с страницей

На панели мониторинга приложений отображаются общие сведения для каждого приложения, как показано на следующих снимках экрана:

  • api-gateway

    Снимок экрана AppDynamics с панелью мониторинга приложений для примера приложения шлюза API.

  • customers-service

    Снимок экрана AppDynamics с панелью мониторинга приложений для примера приложения-службы клиентов.

На следующем снимке экрана показано, как получить основные сведения на панели мониторинга Вызовы базы данных.

Снимок экрана AppDynamics с информационной панелью

Вы также можете получить сведения о самых медленных вызовах базы данных, как показано на следующих снимках экрана:

Снимок экрана AppDynamics с страницей

Снимок экрана AppDynamics с страницей

На следующем снимке экрана представлен анализ использования памяти в разделе Куча на странице Память.

Снимок экрана AppDynamics с разделом кучи страницы памяти.

Вы также можете изучить процесс сборки мусора, как показано на этом снимке экрана:

Снимок экрана AppDynamics с разделом

На следующем снимке экрана представлена страница Медленные транзакции.

Снимок экрана AppDynamics с страницей

Вы можете определить дополнительные метрики для виртуальной машины Java, как показано на этом снимке экрана обозревателя метрик:

Снимок экрана AppDynamics с браузером метрик.

Просмотр журналов агента AppDynamics

По умолчанию Azure Spring Apps выводит журналы уровня info (информационные сообщения) для агента AppDynamics в конвейер STDOUT. Журналы будут смешиваться с журналами приложений. Явную версию агента можно найти в журналах приложений.

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

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

Сведения об обновлении агента AppDynamics

Агент AppDynamics будет регулярно (ежеквартально) получать обновленные JDK. Обновление агента может повлиять на следующие сценарии:

  • Существующие приложения, которые использовали агент AppDynamics перед обновлением, не будут изменяться, но для работы новой версии агента AppDynamics потребуется перезагрузка или повторное развертывание.
  • Приложения, созданные после обновления, будут использовать новую версию агента AppDynamics.

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

Для экземпляров внедрения виртуальной сети Azure Spring Apps убедитесь, что исходящий трафик настроен правильно для агента AppDynamics. Дополнительные сведения см. в разделе "Домены SaaS" и "Диапазоны IP-адресов" и обязанности клиента по запуску Azure Spring Apps в виртуальной сети.

Общие сведения об ограничениях

Сведения об ограничениях для агента AppDynamics см. в статье Monitor Azure Spring Apps with Java Agent (Мониторинг Azure Spring Apps с помощью агента Java).

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

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