考虑下面的代码:
public class Job {
private final ExecutorService executorService;
public void process() {
executorService.submit(() -> {
// do something slow
}
}
}
我可以使用 AppDynamics 的“Java POJO”规则来创建一个业务事务来跟踪对 Job.process() 方法的所有调用。但是测得的响应时间并没有反映由 java.util.concurrent.ExecutorService 启动的异步线程的实际成本。AppDynamics 文档中也描述了这个确切的问题:端到端延迟性能:
控制权的返回在测量响应时间方面停止了事务的时钟,但同时事务的逻辑处理继续进行。
同一个 AppDynamics 文档试图提供解决此问题的解决方案,但它提供的说明对我来说不是很清楚。
谁能提供更多关于如何配置 AppD 来跟踪异步调用的可执行指南,如上图所示?