spring cloud 全链路监控

调用监控基本都是通过google公开的Dapper论文实现的

Dapper论文中对分布式跟踪系统提出以下需求

  • 性能低损耗:分布式跟踪系统对服务的性能损耗应尽可能做到可以忽略不计,尤其是对性能敏感的应用不能产生损耗
  • 对应用透明:尽可能非侵入,尽可能低侵入,尽可能透明
  • 可伸缩性:是不能因为集群扩大导致系统瘫痪
  • 跟踪数据可视化和迅速反馈:即要有可视化的监控界面,从跟踪数据收集,处理到结果展现尽量做到快速。
  • 持续监控

术语

  • Span:基本工作单元。比如发送一次rpc请求就是一个新的Span。Span通过一个64位的ID标志,还包含有描述,时间时间戳,标签,调用它的Span的id,处理器id(一般为机器ip)。第一个Span是root span,它的id和traceid一样
  • Trace : 一些列Span组成的树形结构,相当于一次调用链路。
  • Annotation:标注,用来描述事件的实时状态,它表示一个Span的开始。
    • cs:Client Sent。客户端发起请求,代表一个Span的开发
    • sr:Server Received。代表服务方接收到请求开始处理,它减去cs就是通讯时间。
    • ss:Server Sent.它代表请求处理完成,将相应数据返回给客户端。它减去sr的时间就是服务方处理时间。
    • cr:Client Received。它表示客户端收到服务方的返回值,是当前span结束的信号。它减去cs就是一次请求完成的时间

工作原理

简单来说就是在header加入span,通过拦截器,client等方式嵌入。

你可能感兴趣的:(spring cloud 全链路监控)