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

注意

Azure Spring Apps 是 Azure Spring Cloud 服务的新名称。 虽然该服务有新名称,但一些地方仍会使用旧名称,我们仍在更新屏幕截图、视频和图形等资产。

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

先决条件

日志

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

日志流式处理

可以通过以下命令在 Azure CLI 中使用日志流式处理。

az spring app logs \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name api-gateway \
    --follow

你会看到如下所示的日志:

CLI 日志输出的屏幕截图。

提示

使用 az spring app logs -h 浏览更多参数和日志流功能。

若要详细了解 Log Analytics 中使用的查询语言,请参阅 Azure Monitor 日志查询。 要从一个集中的客户端查询所有 Log Analytics 日志,请查看 Azure 数据资源管理器

Log Analytics

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

    “日志”打开页的屏幕截图。

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

    已筛选日志的屏幕截图。

指标

导航到 Application insights 边栏选项卡,然后导航到 Metrics 边栏选项卡。 可以看到由 Spring Boot 应用、Spring 模块和依赖项提供的指标。

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

网关请求的屏幕截图。

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

可以在“Metrics”边栏选项卡中查看这些自定义指标:

带有自定义指标的“指标”边栏选项卡的屏幕截图。

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

“可用性测试”功能的屏幕截图。

导航到 Live Metrics 边栏选项卡可查看低延迟(小于1秒)的实时指标:

实时指标的屏幕截图。

跟踪

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

导航到“Application Map”边栏选项卡:

“应用程序映射”边栏选项卡的屏幕截图。

导航到 Performance 边栏选项卡:

“性能”边栏选项卡的屏幕截图。

导航到“Performance/Dependenices”边栏选项卡 - 可以查看依赖项的性能数,尤其是 SQL 调用:

“性能/依赖项”边栏选项卡的屏幕截图。

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

端到端事务详细信息的屏幕截图。

导航到“Failures/Exceptions”边栏选项卡,可以看到异常的集合:

“失败/异常”边栏选项卡的屏幕截图。

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

异常详细信息的屏幕截图。

清理资源

如果打算继续使用后续的快速入门和教程,则可能需要保留这些资源。 如果不再需要资源组,可以将其删除,这将删除资源组中的资源。 若要使用 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 的更多监视功能,请参阅: