本文介绍如何用Dynatrace AppMon的PurePath技术来监控Dubbo应用。Dubbo应用是指基于阿里巴巴dubbo分布式远程调用框架的应用程序,用PurePath技术监控dubbo应用是把在dubbo应用上处理请求的代码按照执行顺序和调用关系串联起来,实现分布式执行链路的跟踪(distributed tracing),从而帮忙开发业务人员快速诊断dubbo应用的性能问题。通过查阅网上的资料,我发现dubbo框架是一个非常优秀的,基于自定义协议的分布式远程调用的框架。在熟悉了dubbo框架的远程调用的工作原理后,结合Dynatrace AppMon提供的Java ADK,我开发了一套无需更改任何现有代码的方式来监控dubbo应用的方案。下面我就以dubbo官方的demo程序为例,讲解一下如何用Dynatrace PurePath技术,结合Dynatrace AppMon Java ADK 监控dubbo应用。
dubbo的官方demo程序:https://github.com/apache/incubator-dubbo/tree/master/dubbo-demo。在demo程序中,dubbo-demo-consumer是服务的消费者,dubbo-demo-provider的服务的提供者,dubbo-demo-consumer通过Dubbo框架远程调用dubbo-demo-provider上的服务(DemoService.sayHello)。通过PurePath技术,可以把dubbo-demo-consumer的代码执行和dubbo-demo-consumer代码执行串联起来,做到分布式远程调用的代码跟踪,帮忙运维和开发人员开始诊断问题的根源。
监控效果
首先,让我们来看一张事务流图(Transaction Flow),当我们成功运用PurePath技术监控dem