我想本身搞一些知足zipkin格式的日志,入库es,而后让zipkin仅作展现
1.须要了解zipkin组件
2,学习zipkin设计原理,什么时候何地产生日志 日志如何聚合存储
3.zipkin的自身apihtml
(1)Trace:它是由一组有相同Trace ID的Span串联造成一个树状结构。为了实现请求跟踪,当请求请求到分布式系统的入口端点时,只须要服务跟踪框架为该请求建立一个惟一的跟踪标识(即前文提到的Trace ID),同时在分布式系统内部流转的时候,框架始终保持传递该惟一标识,直到返回请求为止,咱们经过它将全部请求过程当中的日志关联起来;
(2)Span:它表明了一个基础的工做单元,例如服务调用。为了统计各处理单元的时间延迟,当前请求到达各个服务组件时,也经过一个惟一标识(即前文提到的Span ID)来标记它的开始、具体过程以及结束。经过span的开始和结束的时间戳,就能统计该span的时间延迟,除此以外,咱们还能够获取如事件名称、请求信息等元数据。
(3)Annotation:它用于记录一段时间内的事件。内部使用的最重要的注释是:java
cs - Client Sent - 客户端发送一个请求,这个注解描述了这个Span的开始。 sr - Server Received - 服务端得到请求并准备开始处理它,其中(sr – cs) 时间戳即可获得网络传输的时间。 ss - Server Sent (服务端发送响应)– 该注解代表请求处理的完成(当请求返回客户端), (ss – sr)时间戳就能够获得服务器请求的时间。 cr - Client Received (客户端接收响应)- 代表此时Span的结束,(cr – cs)时间戳即可以获得整个请求所消耗的时间。
经过http header方式传输traceid spanid等segmentfault
注意:时间点计算 sr-cs:网络延迟 ss-sr:逻辑处理时间 cr-cs:整个流程时间
上图表示一请求链路,一条链路经过Trace Id惟一标识,Span标识发起的请求信息,各span经过parent id 关联起来,如图
整个链路的依赖关系以下:
api
sr-cs 获得请求发出延迟 ss-sr 获得服务端处理延迟 cr-cs 获得真个链路完成延迟 注意:时间点计算 sr-cs:网络延迟 ss-sr:逻辑处理时间 cr-cs:整个流程时间
官网翻译服务器
Instrumented client:被装配的客户端 Non-Instrumented server:没被装配的服务端 Instrumented server:被装配的服务端
你所在平台是否已经有现成的装配库,能够查看:现有的装配库网络
┌─────────────┐ ┌───────────────────────┐ ┌─────────────┐ ┌──────────────────┐ │ User Code │ │ Trace Instrumentation │ │ Http Client │ │ Zipkin Collector │ └─────────────┘ └───────────────────────┘ └─────────────┘ └──────────────────┘ │ │ │ │ ┌─────────┐ │ ──┤GET /foo ├─▶ │ ────┐ │ │ └─────────┘ │ record tags │ │ ◀───┘ │ │ ────┐ │ │ │ add trace headers │ │ ◀───┘ │ │ ────┐ │ │ │ record timestamp │ │ ◀───┘ │ │ ┌─────────────────┐ │ │ ──┤GET /foo ├─▶ │ │ │X-B3-TraceId: aa │ ────┐ │ │ │X-B3-SpanId: 6b │ │ │ │ └─────────────────┘ │ invoke │ │ │ │ request │ │ │ │ │ │ │ ┌────────┐ ◀───┘ │ │ ◀─────┤200 OK ├─────── │ │ ────┐ └────────┘ │ │ │ record duration │ │ ┌────────┐ ◀───┘ │ ◀──┤200 OK ├── │ │ │ └────────┘ ┌────────────────────────────────┐ │ │ ──┤ asynchronously report span ├────▶ │ │ │ │{ │ │ "traceId": "aa", │ │ "id": "6b", │ │ "name": "get", │ │ "timestamp": 1483945573944000,│ │ "duration": 386000, │ │ "annotations": [ │ │--snip-- │ └────────────────────────────────┘