你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注意
基本计划、标准计划和企业计划于 2025 年 3 月 17 日进入停用期。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
标准消耗和专用计划于 2024 年 9 月 30 日进入停用期,并将在 2025 年 3 月底之前完全关闭。 有关详细信息,请参阅将 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 代理的 info
级别日志输出到 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。