Zipkin是一款开源的分布式实时系统追踪,其主要功能是汇集来个各个异构系统的实时监控数据,用来追踪微服务架构下的系统延时问题。应用系统须要进行instrument以向zipkin报告数据。Zipkin的用户界面能够呈现一幅关联图表,以显示有多少被追踪的请求经过了每个应用。架构
Zipkin以trace结构表示对一次请求的追踪,又把每一个Trace拆分为若干个有依赖关系的Span.在微服务架构中,一次用户请求可能有后台若干个服务负责处理,那么每一个请求处理的服务就能够理解为一个span.固然这个服务也能够陆续请求其余服务,所以span是一个树形结构,以体现服务之间的调用关系。app
Zipkin的Span模型几乎彻底仿造了Dapper中的Span模型,Zipkin中Span主要包含三个数据部分:框架
a.基础数据(包括traceId,spanId,parentId,name,timestamp和durationm主要用户追踪树中节点的关联和展示)分布式
b.Annotation(用于记录特定请求相关信息)微服务
c.BinaryAnnotation(记录一些额外信息,通常以key-value对出现)spa
Zipkin框架构成:ZipKin的收集器负责各系统的报告过来的追踪数据进行接收,而数据存储默认使用Cassandra,也能够使用MySql等替换;查询服务用来像其余服务提供数据查询的能力,而Web程序是官方提供个的一个图形化界面。ip