快速入门:通过日志、指标和跟踪来监视 Azure Spring Apps 应用

注意

基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告

标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。

使用 Azure Spring Apps 中的内置监视功能,可以调试和监视复杂问题。 Azure Spring Apps 将 Spring Cloud Sleuth 与 Azure 的 Application Insights 集成。 这种集成可以通过 Azure 门户提供强大的日志、指标和分布式跟踪功能。 以下过程说明如何通过已部署的 PetClinic 应用使用日志流式处理、Log Analytics、指标和分布式跟踪。

先决条件

日志

可通过两种方式在 Azure Spring Apps 上查看日志:每个应用实例的实时日志的日志流式处理或具有高级查询功能的聚合日志的 Log Analytics。

日志流式处理

使用以下步骤在 Azure 门户中流式传输日志:

  1. 转到 Azure Spring Apps 服务实例的“概述”页面,然后在导航窗格中选择“应用”

  2. 找到目标应用,然后选择上下文菜单。

  3. 在弹出的上下文菜单中,选择“查看日志流”

    Azure 门户的屏幕截图,其中显示了“应用”页面,并突出显示了“查看日志流”上下文菜单项。

默认情况下,日志会从随机选择的应用实例开始流式传输。 之后可以选择自己的应用实例。

Azure 门户的屏幕截图,其中显示了“日志流”页面。

为了方便,有许多入口点可用于流式传输日志。 可以在以下窗格中找到它们:

  • “应用列表”窗格
  • “部署列表”窗格
  • “应用实例列表”窗格

Log Analytics

  1. 转到“服务 | 概述”页,然后在“监视”部分中选择“日志” 。 选择 Azure Spring Apps 的一个示例查询上的“运行”。

    Azure 门户的屏幕截图,其中显示了“查询”页并突出显示了“运行”。

  2. 然后,你会看到筛选出的日志。 有关详细信息,请参阅 Azure Monitor 日志查询入门

    Azure 门户的屏幕截图,其中显示了已筛选日志的查询结果。

指标

导航到“Application insights”页,然后导航到“指标”页。 可以看到由 Spring Boot 应用、Spring 模块和依赖项提供的指标。

下图显示 gateway_requests(Spring Cloud 网关)、hikaricp_connections(JDBC 连接)和 http_client_requests

Azure 门户 Application Insights 的屏幕截图,其中显示了“指标”页以及所选值的图表。

Spring Boot 注册多个核心指标,包括 JVM、CPU、Tomcat 和 Logback。 Spring Boot 自动配置可用于检测由 Spring MVC 处理的请求。 所有三个 REST 控制器(OwnerResourcePetResourceVisitResource)都将由类级别的 @Timed Micrometer 注释进行检测。

customers-service 应用程序启用了下列自定义指标:

  • @Timed:petclinic.owner
  • @Timed:petclinic.pet

visits-service 应用程序启用了下列自定义指标:

  • @Timed:petclinic.visit

可以在“指标”页中查看这些自定义指标:

Azure 门户 Application Insights 的屏幕截图,其中显示了“指标”页以及自定义指标。

可以使用 Application Insights 中的可用性测试功能并监视应用程序的可用性:

Azure 门户 Application Insights 的屏幕截图,其中显示了“可用性”页并突出显示了“可用性测试”部分。

导航到“实时指标”页可查看低延迟(小于 1 秒)的实时指标

Azure 门户 Application Insights 的屏幕截图,其中显示了“实时指标”页的低延迟图表。

跟踪

打开 Azure Spring Apps 创建的 Application Insights,并开始监视 Spring 应用程序。

导航到“应用程序映射”页:

Azure 门户 Application Insights 的屏幕截图,其中显示了“应用程序映射”页以及映射组件。

导航到“性能”页

Azure 门户 Application Insights 的屏幕截图,其中显示了“性能”页以及“操作”详细信息。

导航到“依赖项”选项卡,从中可以查看依赖项的性能数,尤其是 SQL 调用:

Azure 门户 Application Insights 的屏幕截图,其中显示了“性能”页并突出显示了“依赖项”表。

选择 SQL 调用,查看上下文中的端到端事务:

Azure 门户的屏幕截图,其中显示了端到端事务详细信息页。

导航到“失败”页的“异常”选项卡,从中可以看到异常的集合:

Azure 门户 Application Insights 的屏幕截图,其中显示了“失败”页。

选择一个异常以查看上下文中的端到端事务和堆栈跟踪:

Azure 门户的屏幕截图,其中显示了端到端事务详细信息页以及异常详细信息和调用堆栈。

清理资源

如果打算继续使用后续的快速入门和教程,则可能需要保留这些资源。 如果不再需要资源组,可以将其删除,这将删除资源组中的资源。 若要使用 Azure CLI 删除资源组,请使用以下命令:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

在前面的快速入门中,你还设置了默认资源组名称。 如果不打算继续学习下一个快速入门,请通过运行以下 CLI 命令清除该默认名称:

az config set defaults.group=

后续步骤

若要了解 Azure Spring Apps 的更多监视功能,请参阅: