毛剑-B站微服务链路监控实践.pdf
毛剑-B站微服务链路监控实践.pdf
2017.thegiac.com
www.top100summit.com
bilibili分布式链路监控
毛剑
bilibili研发总监
2017.thegiac.com
设计目标
• 无处不在的部署
• 持续的监控
• 低消耗
• 应用级的透明
• 延展性
• 低延迟
2017.thegiac.com
分布式跟踪
参考Google Dapper 论文实现,为每
个请求都生成一个全局唯一的traceid,
端到端透传到上下游所有节点,每
一层生成一个spanid,通过traceid将不
同系统孤立的调用日志和异常信息
串联一起,通过spanid和level 表达节
点的父子关系;
核心概念:
• Tree
• Span
• Annotation
2017.thegiac.com
跟踪树
在跟踪树结构中,树节点是整个架
构的基本单元,而每一个节点又是
对span的引用。虽然span在日志文件
中只是简单的代表span的开始和结束
时间,他们在整个树形结构中却是
相对独立的;
核心概念:
• TraceID
• SpanID
• ParentID
• Family & Title
2017.thegiac.com
跟踪Span
• 追踪信息包含时间戳、事件、方法名(Family+Title)、注释(TAG/Comment)
• 客户端和服务器上的时间戳来自不同的主机,我们必须考虑到时间偏差,
RPC客户端发送一个请求之后,服务器端才能接收到,对于响应也是一样的
(服务器先响应,然后客户端才能接收到这个响应)。这样一来,服务器端
的RPC就有一个时间戳的一个上限和下限
...