异步请求追踪
APM Insight Java 包含对 CompletableFuture 异步事务的支持。这是众多受支持框架中应用最广泛的异步处理方法之一。本文介绍异步处理的工作原理以及 APM Insight 如何监控异步函数。
异步操作
同步编程模型通常按特定顺序执行编程任务,一个任务必须完成后才能开始下一个,这会增加多个任务的等待时间。
异步编程采用非阻塞模型,允许任务并发执行。异步任务在执行和初始化上完全独立。由于异步代码不按顺序执行,服务器的完整处理能力可以得到更高效的利用。
APM Insight Java 代理专门设计用于监控异步任务,使用户能够轻松追踪异步函数和 Web 事务的性能。
用于识别异步调用的追踪记录
APM Insight 中捕获的追踪记录(Traces)提供了异步任务在您的环境中并发执行情况的可见性。
按照以下步骤查看异步调用:
- 登录您的 Site24x7 Web 客户端。
- 前往 APM > 您的 Java 应用程序。
- 单击追踪记录(Traces)选项卡,然后单击所需的追踪记录。
- 选择追踪详情(Trace Details)选项卡。
我们会为异步调用显示以下指标:
- 异步调用状态:已完成(Completed)、已失败(Failed)、已取消(Cancelled)
- 异步线程信息:线程名称、线程 ID、CPU 时间、已分配内存
- 线程池等待时间:异步任务等待分配新线程的时长
- 调用线程等待时间:主线程等待异步作业完成的时长(若调用了 join())
异步调用如何影响响应时间?
异步 Java 应用程序的整体响应时间(Overall Response Time)通常小于总事务时间。这是因为异步方法无需等待所有前置方法完成后才返回。由于任务可以延迟处理,应用程序能够更好地利用有限资源,从而更快地完成处理。
如需查看此情况,请导航至 Site24x7 Web 客户端 > APM > 选择您的应用程序 > 单击概述(Overview)选项卡。
在 APM 概述(Overview)页面,查看按组件细分的应用服务器响应时间(App Server Response Time Broken by Components)图表。相应 Java 应用程序中的异步活动可能导致响应时间(深蓝色线)低于总事务时间。
