本文回顾分布式调用链监控(Distributed Tracing)产品的演进史,介绍近年出现的OpenTracing标准,对主流的开源产品进行比较,并给出选型建议。
一、演进史
2012年初,我作为携程框架研发部架构师,主导研发了携程第一代的分布式调用链监控产品CTrace,当时在国内算是比较早的引入调用链监控的一个案例。之后我一直对分布式调用链监控这个技术领域比较关注,下图是我近期总结的该领域的一个产品演进史:
- 现在业界普遍认为是Google最早提出了分布式调用链监控的理念并研发了相关产品Dapper(见Google Dapper论文[附录1]),但是其实早在2002年,eBay就已经有了调用链监控产品CAL(Centralized Application Logging)。2002年的时候,eBay是世界上最大的电子商务平台,其内部工程团队为了应对分布式系统的复杂性和稳定性挑战而研发了CAL。CAL的理念和Dapper类似,但做法有所不同。CAL是eBay工程师进行性能监控和排障的利器,我曾经在eBay中国研发中心工作(2007~2012),期间也使用过CAL,对这个工具有很深刻的印象。
- 2010年,经过大规模生产落地实践,Google发表了分布式调用链追踪基础设施Dapper论文。Dapper可以认为是现代分布式调用链监控产品的鼻祖