链路追踪和应用性能监控有哪些区别?

概要

阿里云上最近推出了一款新产品 链路追踪 ,专注于帮助开发者快速分析和诊断分布式应用架构下的性能瓶颈,提高微服务时代下的开发诊断效率。

_2018_10_25_9_06_26

分布式应用环境下的链路追踪,并不是一个新话题。在早些时间,阿里云产品 业务实时监控服务 也有类似功能推出。那么链路追踪和业务实时监控服务在产品功能层面到底有什么样的区别和联系?本文将给出概要说明。

以下从产品定位,接入方式,以及使用成本 三个方面来比较 业务实时监控服务链路追踪 两款产品。

产品定位

从功能定位上看,业务实时监控服务定位于重量级的应用性能管理类(Application Performance Management, 简称APM)工具,包含的功能相对丰富。应用程序通过挂载Agent方式接入监控,Agent内部功能相对丰富,包括性能监控,用户体验监控,链路追踪,故障诊断,等多种功能。

而链路追踪定位于分布式链路追踪解决方案工具,功能比较专一,专业面向解决分布式环境下的链路追踪这一个问题。用户通过接入链路追踪SDK来实现分布式链路追踪,SDK本身只负责链路监控,功能相对专注。

接入方式

业务实时监控使用的是业界商业化APM工具中比较流行的无侵入式接入方案。用户无需改动代码,即可接入。不过一般需要在应用程序中加载Agent,需要修改程序启动方式。例如以业务实时监控服务为例,在启动Java程序时需要增加-javaagent启动参数。

链路追踪则使用的是基于 Jaeger, Zipkin 等开源产品和开源标准 Opentracing 的侵入式接入方案。用户可以基于以上任意一种标准SDK接入到链路追踪中。这样的好处是:

  • 已在用Jaeger, Zipkin或其他Opentracing标准SDK的应用可无缝迁移到链路追踪产品中,而不用修改代码;
  • 由于产品SDK是基于开源标准的,因此用户不用担心lock-in问题;
  • 借助社区力量,用户可以一次性大量支持多种开发语言,使得面向异构环境的开发者在监控方面接入门槛大幅度降低。

使用成本

和其他APM工具类产品类似,无论是应用监控还是前端监控等功能,业务实时监控服务采用的是按量付费的收费模式,总体来讲还是占用户总体预算的相当一部分。不过从总体来看,业务实时监控服务 收费大大低于业界平均水平,仅占业界水平10-20%左右,这也得益于其优秀的高性能和高效率架构。

链路追踪专注于解决分布式环境下的链路诊断问题,其功能相对专注,产品精简,本身不收费。用户的链路信息存储于阿里云的日志服务产品中,用户仅对日志服务存储收费,链路追踪产品本身不收费。

产品区别和联系总结

以下表格总结两个产品的区别和联系。

业务实时监控服务 链路追踪
产品定位 APM工具类产品,产品本身含应用性能监控,用户体验监控,链路追踪,问题诊断等多项功能。 专注分布式链路功能追踪功能。
应用程序语言支持 Java, PHP (coming soon) Java, PHP, Go, C#, Python, Node.JS, etc.
接入方式 无侵入式Agent加载方式接入 侵入式SDK编程方式接入
产品费用 按量付费,极具竞争力的产品价格 产品本身免费,用户仅对日志服务使用部分收费

未来展望

虽然两个产品定位不同,但是同样定位于阿里云上的开发者工具监控类产品,两款产品未来会做互相地打通。

  • 业务实时监控服务将支持链路追踪 的SDK方式进行分布式链路追踪的定制化;
  • 链路追踪的应用链路同样能在 业务实时监控服务的界面中进行查询,优化用户诊断体验。

-> 欢迎关注“阿里巴巴中间件”,加入中间件开发者群,与技术同行。

101020104542_0949_2_Jpeg

猜你喜欢

转载自blog.51cto.com/13995002/2309266