Мониторинг приложений 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, на котором показана страница

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

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

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

Вы также можете запустить конвейер автоматизации подготовки с помощью шаблона 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 выводит журналы уровня информации агента STDOUTAppDynamics в . Журналы смешиваются с журналами приложений. Явную версию агента можно найти в журналах приложений.

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

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

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

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

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

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

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

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

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

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

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