zipkin 学习笔记

原创 2017年10月16日 23:44:57

zipkin 学习笔记

概述

Span—->追踪的基本单元

  • trace_id—->一个完整的rpc调用链拥有同一个trace_id
  • /name/id/—->一次rpc调用就产生一个span_id
  • parent_id/—->rpc的父级
  • Annotation/BinaryAnnotation/—->记录rpc服务本身以及业务的信息
  • timestamp/duration—->一次rpc耗用时间

Brave—->zipkin的传输基础

  • 拥有ServerTracer/ClientTracer/ServerRequestInterceptor/ServerResponseInterceptor/ClientRequestInterceptor/ClientResponseInterceptor等
  • ServerTracer—->用于服务端接收请求(setServerReceived)/确认请求(setServerSend)—->sr/ss
  • ClientTracer—->用于客户端发送请求(setClientSent)/接收响应(setClientReceived)—->cs/cr
  • ServerRequestInterceptor/ServerResponseInterceptor—->用于服务端,拦截请求/响应,记录请求信息等
  • ClientRequestInterceptor/ClientResponseInterceptor—->用于客户端,拦截请求/响应,记录信息等

SpanCollector—->span收集器,用于异步将拦截到的追踪信息,提交给zipkin服务器

  • HttpSpanCollector—->AbstractSpanCollector—->FlushingSpanCollector—->SpanCollector
    • SpanCollector—->提供收集span功能
    • FlushingSpanCollector—->提供异步刷新与队列存储支持
      • com.github.kristofa.brave.FlushingSpanCollector.Flusher#run
      • flush
    • AbstractSpanCollector—->提供编解码支持,将span按照编解码转换为字节码
      • reportSpans
    • HttpSpanCollector—->以POST方法application/json形式提交转换的span字节码信息
      • sendSpans

BraveServletFilter—->服务端过滤器,过滤请求与响应,发送sr (server received) and ss (server sent)

  • 委托给ServerRequestInterceptor.handle进行请求的处理,构建新的TraceData信息
  • 委托给ServerResponseInterceptor#handle进行响应的处理,再进行ServerTracer#setServerSend时候,添加span到spanCollector

BraveOkHttpRequestResponseInterceptor—->客户端拦截器,拦截请求/响应,cs/cr

  • 委托给ClientRequestInterceptor.handle进行请求的拦截,向request中添加Sampled/TraceId/SpanId/ParentSpanId信息头
  • 委托给ClientResponseInterceptor#handle进行响应的拦截,再进行clientTracer.setClientReceived时候,添加span到spanCollector

测试

版权声明:本文为博主原创文章,未经博主允许不得转载。

使用Zipkin 和 Brave 实现http(springmvc)服务调用跟踪(二)

上次讲了Brave为Spring提供的Servlet拦截器(ServletHandlerInterceptor)及Rest(BraveClientHttpRequestInterceptor)模板的拦...
  • blacklau
  • blacklau
  • 2017年04月13日 15:10
  • 2477

分布式跟踪系统(二):Zipkin的Span模型

在《分布式跟踪系统(一):Zipkin的背景和设计》一文中,已经初步的介绍了Zipkin的设计和数据模型,本文将详细介绍Zipkin的Span模型,以及其他“另类”Span模型的设计。        ...
  • manzhizhen
  • manzhizhen
  • 2016年12月25日 00:40
  • 2121

motan学习笔记 四 motan Demo 之yar 分析

发现了yar 这个东西, motan新增了 YarRpcProtocol 这个协议,主要支持php序列化。 来学习下yar协议的具体实现 从代码中看出,支持exporter,不支持refer ...
  • akfly
  • akfly
  • 2017年01月01日 16:46
  • 1295

《Java JDK8学习笔记》读书笔记(4)

第4章 认识对象 学习目标  区分基本类型与对象类型  了解对象与引用的关系  从打包器认识对象  以对象观点看待数组  认识字符串的特性...
  • mouyong
  • mouyong
  • 2016年04月18日 20:10
  • 4405

【静下心学习Unity】学习笔记 (一)简介

静下心好好学习Unity3D,不再无脑制作Demo。基础扎实才是王道。——来自刚受实习挫折准备好好学习的孙子旭...
  • sun15980
  • sun15980
  • 2016年04月10日 18:58
  • 1749

motan学习笔记 六 opentracing Brave+zipkin实现

前面我们学习了,opentracing的接口定义 本文来学习motan用filter 来拦截请求,并用brace来实现,上报数据到zipkin...
  • akfly
  • akfly
  • 2017年01月03日 11:32
  • 4063

zipkin日志追踪分析笔记

客户端数据收集: 采样率是由org.springframework.cloud.sleuth.sampler.SamplerProperties里面 spring.sleuth.sampler.p...
  • Crystalqy
  • Crystalqy
  • 2018年01月12日 16:14
  • 49

Coursera深度学习笔记v4.1

  • 2018年01月16日 15:41
  • 22.33MB
  • 下载

nodejs学习笔记

  • 2018年01月14日 00:45
  • 434KB
  • 下载

大数据hadoop学习笔记

  • 2018年01月14日 10:21
  • 29.65MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:zipkin 学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)