Мониторинг приложений 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 с помощью Azure CLI
Чтобы активировать приложение с помощью Azure CLI, выполните следующие действия.
Создать группу ресурсов.
Создайте экземпляр Azure Spring Apps.
Создайте приложение с помощью следующей команды. Замените значения заполнителей <...> на собственные.
az spring app create \ --resource-group "<your-resource-group-name>" \ --service "<your-Azure-Spring-Apps-instance-name>" \ --name "<your-app-name>" \ --is-public true
Создайте развертывание с помощью агента 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, выполните следующие действия.
Перейдите к нужному экземпляру службы Azure Spring Apps на портале Azure.
Выберите "Приложения" в разделе "Параметры" области навигации .
Выберите приложение и выберите "Конфигурация " в области навигации.
Используйте вкладку "Общие параметры" для обновления значений, таких как параметры JVM.
Выберите переменные среды, чтобы добавить или обновить переменные , используемые приложением.
Автоматизация подготовки
Вы также можете запустить конвейер автоматизации подготовки с помощью шаблона 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:
На вкладке "Приложения" отображаются общие сведения для каждого приложения, как показано на следующих снимках экрана с примерами приложений:
На следующем снимке экрана показано, как получить основные сведения на панели мониторинга Вызовы базы данных.
Вы также можете получить сведения о самых медленных вызовах базы данных, как показано на следующих снимках экрана:
На следующем снимке экрана представлен анализ использования памяти в разделе Куча на странице Память.
Вы также можете изучить процесс сборки мусора, как показано на этом снимке экрана:
На следующем снимке экрана представлена страница Медленные транзакции.
Вы можете определить дополнительные метрики для виртуальной машины Java, как показано на этом снимке экрана обозревателя метрик:
Просмотр журналов агента AppDynamics
По умолчанию Azure Spring Apps выводит журналы уровня информации агента STDOUT
AppDynamics в . Журналы смешиваются с журналами приложений. Явную версию агента можно найти в журналах приложений.
Кроме того, журналы агента 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