你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
如何使用 Dynatrace Java OneAgent 监视 Spring Boot 应用
注意
从 2025 年 3 月中旬开始,基本、标准和企业计划将弃用,停用期为三年。 建议过渡到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
从 2024 年 9 月 30 日开始,标准消耗和专用计划将弃用,六个月后将完全关闭。 建议过渡到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用。
本文适用于:✔️ 标准消耗和专用计划(预览版)✔️ 基本/标准计划 ❌️ 企业计划
本文介绍如何使用 Dynatrace OneAgent 监视 Azure Spring Apps 中的 Spring Boot 应用程序。
使用 Dynatrace OneAgent,你可以:
- 使用 Dynatrace OneAgent 监视应用。
- 使用环境变量配置 Dynatrace OneAgent。
- 从 Dynatrace 仪表板检查所有监视数据。
以下视频介绍 Dynatrace OneAgent。
先决条件
Activate Dynatrace OneAgent
以下部分介绍如何激活 Dynatrace OneAgent。
准备 Azure Spring Apps 环境
- 创建 Azure Spring Apps 的实例。
- 通过运行以下命令,创建一个要报告给 Dynatrace 的应用程序。 将占位符“<...>”替换成自己的值。
az spring app create \ --resource-group <your-resource-group-name> \ --service <your-Azure-Spring-Apps-name> \ --name <your-application-name> \ --is-public true
确定所需环境变量的值
要在 Azure Spring Apps 实例上激活 Dynatrace OneAgent,需要配置四个环境变量:DT_TENANT
、DT_TENANTTOKEN
、DT_CONNECTION_POINT
和 DT_CLUSTER_ID
。 有关详细信息,请参阅将 OneAgent 与 Azure Spring Apps 集成。
对于具有多个实例的应用程序,Dynatrace 可以通过多种方法将它们分组。 DT_CLUSTER_ID
是方法之一。 有关详细信息,请参阅过程小组检测。
将环境变量添加到应用程序
可以使用 Azure 门户或 Azure CLI 将环境变量键/值对添加到应用程序。
选项 1:Azure CLI
要使用 Azure CLI 添加键/值对,请运行以下命令,将占位符 <...> 替换为前面步骤中确定的值。
az spring app deploy \
--resource-group <your-resource-group-name> \
--service <your-Azure-Spring-Apps-name> \
--name <your-application-name> \
--artifact-path app.jar \
--env \
DT_TENANT=<your-environment-ID> \
DT_TENANTTOKEN=<your-tenant-token> \
DT_CONNECTION_POINT=<your-communication-endpoint>
选项 2:Azure 门户
要使用 Azure 门户添加键/值对,请使用以下步骤:
自动预配
通过使用 Terraform、Bicep 或 Azure 资源管理器模板(ARM 模板),你还可以运行预配自动化管道。 此管道可以提供完整的无干预体验,用于检测和监视你创建和部署的任何新应用程序。
使用 Terraform 自动预配
若要在 Terraform 模板中配置环境变量,请将以下代码添加到模板中,并将“<...>”占位符替换为自己的值。 有关详细信息,请参阅管理活动的 Azure Spring Apps 部署。
environment_variables = {
"DT_TENANT": "<your-environment-ID>",
"DT_TENANTTOKEN": "<your-tenant-token>",
"DT_CONNECTION_POINT": "<your-communication-endpoint>",
"DT_CLUSTER_ID": "<your-cluster-ID>"
}
使用 Bicep 文件自动完成预配
若要在 Bicep 文件中配置环境变量,请将以下代码添加到该文件,并将 <...> 占位符替换为你自己的值。 有关详细信息,请参阅 Microsoft.AppPlatform Spring/apps/deployments。
environmentVariables: {
DT_TENANT: '<your-environment-ID>'
DT_TENANTTOKEN: '<your-tenant-token>'
DT_CONNECTION_POINT: '<your-communication-endpoint>'
DT_CLUSTER_ID: '<your-cluster-ID>'
}
使用 ARM 模板自动预配
若要在 ARM 模板中配置环境变量,请将以下代码添加到模板中,并将“<...>”占位符替换为自己的值。 有关详细信息,请参阅 Microsoft.AppPlatform Spring/apps/deployments。
"environmentVariables": {
"DT_TENANT": "<your-environment-ID>",
"DT_TENANTTOKEN": "<your-tenant-token>",
"DT_CONNECTION_POINT": "<your-communication-endpoint>",
"DT_CLUSTER_ID": "<your-cluster-ID>"
}
在 Dynatrace 中查看报告
本部分介绍如何在 Dynatrace 中查找各种报告。
注意
Dynatrace 菜单和用户界面将逐渐演变。 为此,仪表板可能会移至 Dynatrace 网站的其他部分,而以下屏幕截图可能无法反映当前版本的用户界面。
在将环境变量添加到应用程序后,Dynatrace 开始收集数据。 要查看报告,请使用 Dynatrace 菜单,转到“服务”,然后选择你的应用程序。
可以从“<your-app-name>/详细信息/服务流”中找到服务流:
可以从“<your-app-name>/详细信息/方法热点”中找到“方法热点”:
可以从“<your-app-name>/详细信息/响应时间分析”中找到“数据库语句”:
接下来,转到“多维分析”部分。
可以从“多维分析/常用数据库语句”中找到“常用数据库语句”:
可以从“多维分析/异常概述”中找到“异常概述”:
接下来,转到“分析和优化”部分。
可以从“分析和优化/CPU 分析”中找到“CPU 分析”:
接下来,转到“数据库”部分。
可以从“数据库/详细信息/回溯”中找到“回溯”:
查看 Dynatrace OneAgent 日志
默认情况下,Azure Spring Apps 会将 Dynatrace OneAgent 的“信息”级别日志输出到 STDOUT
。 这些日志将与应用程序日志混合。 可以从应用程序日志中找到显式代理版本。
也可从以下位置获取 Dynatrace 代理的日志:
- Azure Spring Apps 日志
- Azure Spring Apps Application Insights
- Azure Spring Apps LogStream
可以应用 Dynatrace 提供的某些环境变量来配置 Dynatrace OneAgent 的日志记录。 例如,DT_LOGLEVELCON
控制日志的级别。 DT_LOGLEVELCON
的默认值为 info
。 可以通过将 DT_LOGLEVELCON
设置为 off
来禁用代理的日志。 如果禁用了日志记录,Dynatrace 支持人员将要求你先启用日志记录,以有效诊断任何代理问题。 然后,必须重启应用程序,只有这样才能使更改生效。 对于其他日志级别,请咨询 Dynatrace 支持团队。
注意
强烈建议不要替代由 Azure Spring Apps 为 Dynatrace 提供的默认日志记录行为。 如果这样做,上述日志记录方案将被阻止,并且日志文件可能会丢失。 例如,不应将 DT_LOGLEVELFILE
环境变量输出到应用程序。
Dynatrace OneAgent 升级
Dynatrace OneAgent 自动升级已禁用,将每季度随 JDK 升级。 代理升级可能会影响以下场景:
- 升级前使用 Dynatrace OneAgent 的现有应用程序将保持不变,但需要重启或重新部署才能使用新版 Dynatrace OneAgent。
- 升级后创建的应用程序将使用新版 Dynatrace OneAgent。
虚拟网络注入实例出站流量配置
对于 Azure Spring Apps 的虚拟网络注入实例,需要确保为 Dynatrace OneAgent 正确配置了 Dynatrace 通信终结点的出站流量。 有关如何获取 communicationEndpoints
的信息,请参阅部署 API - 获取 OneAgent 的连接信息。 有关详细信息,请参阅在虚拟网络中运行 Azure Spring Apps 的客户责任。
Dynatrace 支持模型
有关在仅应用程序模式下部署 Dynatrace OneAgent 的限制信息,请参阅 OneAgent 平台和功能支持矩阵的云应用程序平台部分。