Google的Drapper
Dapper是Google生产环境下的分布式跟踪系统,Dapper有三个设计目标:
- 低消耗:跟踪系统对在线服务的影响应该做到足够小。
- 应用级的透明:对于应用的程序员来说,是不需要知道有跟踪系统这回事的。如果一个跟踪系统想生效,就必须需要依赖应用的开发者主动配合,那么这个跟踪系统显然是侵入性太强的。
- 延展性:Google至少在未来几年的服务和集群的规模,监控系统都应该能完全把控住。
Drapper的日志格式,用span来表示一个服务调用开始和结束的时间,也就是时间区间。Dapper记录了span的名称以及每个span的ID和父ID,如果一个span没有父ID被称之为root span。所有的span都挂在一个特定的trace上,共用一个traceID,这些ID用全局64位整数标示。
Drapper如何进行跟踪收集:
分为3个阶段:各个服务将span数据写到本机日志上;Dapper守护进程进行拉取,将数据读到dapper收集器里;Dapper收集器将结果写到bigtable中,一次跟踪被记录为一行。
淘宝的鹰眼
关于淘宝的鹰眼系统,主要资料来自于内部分享,
鹰眼埋点和生成日志:
如何抓取和存储日志:
鹰眼的实现小结: