你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
如何使用 AppDynamics Java 代理监视 Spring Boot 应用
注意
从 2025 年 3 月中旬开始,基本、标准和企业计划将弃用,停用期为三年。 建议过渡到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
从 2024 年 9 月 30 日开始,标准消耗和专用计划将弃用,六个月后将完全关闭。 建议过渡到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用。
本文适用于:✔️ 标准消耗和专用计划(预览版)✔️ 基本/标准计划 ❌️ 企业计划
本文介绍如何使用 AppDynamics Java 代理监视 Azure Spring Apps 中的 Spring Boot 应用程序。
使用 AppDynamics Java 代理可以:
- 监视应用程序
- 使用环境变量配置 AppDynamics Java 代理
- 在 AppDynamics 仪表板中检查所有监视数据
以下视频介绍了 AppDynamics Java 进程内代理。
先决条件
激活 AppDynamics Java 进程内代理
对于整个工作流,需要:
- 在 Azure Spring Apps 中激活 AppDynamics Java 进程内代理以生成应用程序指标数据。
- 将 AppDynamics 代理连接到 AppDynamics 控制器以收集和可视化控制器中的数据。
使用 Azure CLI 激活具有 AppDynamics 代理的应用程序
若要通过 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 将 AppDynamics Java 代理预安装到路径 /opt/agents/appdynamics/java/javaagent.jar。 可以从应用程序的 JVM 选项激活代理,然后使用环境变量配置此代理。 可以在使用 Java 代理监视 Azure Spring Apps 中查找这些变量的值。 有关这些变量如何帮助在 AppDynamics UI 中查看和组织报表的详细信息,请参阅层和节点。
使用 Azure 门户激活具有 AppDynamics 代理的应用程序
若要通过 Azure 门户激活应用程序,请使用以下步骤。
在 Azure 门户中导航到 Azure Spring Apps 实例。
在导航窗格的“设置”部分,选择“应用”。
选择应用,然后在导航窗格中选择“配置”。
使用“常规设置”选项卡更新 JVM 选项之类的值。
选择“环境变量”以添加或更新应用程序使用的变量。
自动预配
还可以使用 Terraform、Bicep 或 Azure 资源管理器模板(ARM 模板)来运行预配自动化管道。 此管道可以提供完整的无干预体验,用于检测和监视你创建和部署的任何新应用程序。
使用 Terraform 自动预配
若要在 Terraform 模板中配置环境变量,请将以下代码添加到模板中,并将“<...>”占位符替换为自己的值。 有关详细信息,请参阅管理活动的 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 仪表板中的应用概述:
“应用程序”选项卡显示每个应用的整体信息,如以下使用示例应用程序的屏幕截图所示:
以下屏幕截图显示如何能够从“数据库调用”仪表板获取基本信息。
还可以获取有关最慢的数据库调用的信息,如以下屏幕截图所示:
以下屏幕截图显示“内存”页的“堆”部分中的内存使用情况分析:
还可以查看垃圾回收过程,如以下屏幕截图所示:
以下屏幕截图显示“速度缓慢的事务”页:
可以为 JVM 定义更多指标,如以下“指标浏览器”屏幕截图所示:
查看 AppDynamics 代理日志
默认情况下,Azure Spring Apps 将 AppDynamics 代理的信息级日志输出到 STDOUT
。 这些日志将与应用程序日志混合。 可以从应用程序日志中找到显式代理版本。
也可以从以下位置获取 AppDynamics 代理的日志:
- Azure Spring Apps 日志
- Azure Spring Apps Application Insights
- Azure Spring Apps LogStream
了解 AppDynamics 代理升级
AppDynamics 代理定期(每季度)与 JDK 一起升级。 代理升级可能会影响以下场景:
- 升级前使用 AppDynamics 代理的现有应用程序保持不变,但需要重启或重新部署才能正常使用新版 AppDynamics 代理。
- 升级后创建的应用程序使用新版 AppDynamics 代理。
配置虚拟网络注入实例出站流量
对于 Azure Spring Apps 的虚拟网络注入实例,请确保为 AppDynamics 代理正确配置出站流量。 有关详细信息,请参阅 Cisco AppDynamics SaaS 域和 IP 范围以及在虚拟网络中运行 Azure Spring Apps 的客户责任。
了解限制
若要了解 AppDynamics 代理的限制,请参阅使用 Java 代理监视 Azure Spring Apps。