阿里云上最近推出了一款新产品链路追踪 ,专一于帮助开发者快速分析和诊断分布式应用架构下的性能瓶颈,提升微服务时代下的开发诊断效率,并省去用户搭建各种链路监控应用(Jaeger, Zipkin等)和相关存储服务(Hbase, ElasticSearch等)的成本。前端
分布式应用环境下的链路追踪,并非一个新话题。在早些时间,阿里云产品 业务实时监控服务也有相似功能推出。那么,链路追踪和业务实时监控服务 在产品功能层面到底有什么样的区别和联系?本文将给出概要说明。java
如下从产品定位,接入方式,以及使用成本 三个方面来比较 业务实时监控服务 和 链路追踪 两款产品。git
从功能定位上看,业务实时监控服务 定位于重量级的应用性能管理类(Application Performance Management, 简称APM)工具,包含的功能相对丰富。应用程序经过挂载Agent方式接入监控,Agent内部功能相对丰富,包括性能监控,用户体验监控,链路追踪,故障诊断,等多种功能。github
而链路追踪定位于分布式链路追踪解决方案工具,功能比较专注,专业面向解决分布式环境下的链路追踪这一个问题。用户经过接入链路追踪SDK来实现分布式链路追踪,SDK自己只负责链路监控,功能相对专一。编程
定位于APM的业务实时监控服务的监控接入方式使用的是业界商业化APM工具中比较流行的无侵入式接入方案。用户无需改动代码,便可接入。不过通常须要在应用程序中加载Agent,须要修改程序启动方式。例如以业务实时监控服务为例,在启动Java程序时须要增长-javaagent启动参数。架构
定位于分布式链路追踪的链路追踪产品是基于开源产品 Jaeger, Zipkin 等开源产品和开源标准 Opentracing 的监控产品。用户能够基于以上任意一种标准SDK接入到链路追踪中。这样的好处是:分布式
和其余APM工具类产品相似,不管是应用监控仍是前端监控等功能,业务实时监控服务采用的是按量付费的收费模式,整体来说仍是占用户整体预算的至关一部分。不过从整体来看,业务实时监控服务 收费大大低于业界平均水平,仅占业界水平10-20%左右,这也得益于其优秀的高性能和高效率架构。微服务
链路追踪专一于解决分布式环境下的链路诊断问题,其功能相对专一,产品精简,自己不收费。用户的链路信息存储于阿里云的日志服务产品中,用户仅对日志服务存储收费,链路追踪产品自己不收费。工具
如下表格总结两个产品的区别和联系。性能
业务实时监控服务 | 链路追踪 | |
---|---|---|
产品定位 | APM工具类产品,产品自己含应用性能监控,用户体验监控,链路追踪,问题诊断等多项功能。 | 专一分布式链路功能追踪功能。 |
应用程序语言支持 | Java, PHP (coming soon) | Java, PHP, Go, C#, Python, Node.JS, etc. |
接入方式 | 无侵入式Agent加载方式接入 | 侵入式SDK编程方式接入 |
产品费用 | 按量付费,极具竞争力的产品价格 | 产品自己免费,用户仅对日志服务使用部分收费 |
虽然两个产品定位不一样,可是一样定位于阿里云上的开发者工具监控类产品,两款产品将来会作互相地打通。
阅读原文 本文为云栖社区原创内容,未经容许不得转载。