电商自建站,自己想做个网站怎么做,wordpress建立企业网站,兴安盟建设局网站前言
微服务链路追踪系列博客#xff0c;后续可能会涉及到Brave、Zipkin、Sleuth内容的梳理。
Brave
何为Brave#xff1f; github地址#xff1a;https://github.com/openzipkin/brave Brave是一个分布式追踪埋点库。 #mermaid-svg-riwF9nbu1AldDJ7P {font-family:后续可能会涉及到Brave、Zipkin、Sleuth内容的梳理。
Brave
何为Brave github地址https://github.com/openzipkin/brave Brave是一个分布式追踪埋点库。
#mermaid-svg-riwF9nbu1AldDJ7P {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-riwF9nbu1AldDJ7P .error-icon{fill:#552222;}#mermaid-svg-riwF9nbu1AldDJ7P .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-riwF9nbu1AldDJ7P .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-riwF9nbu1AldDJ7P .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-riwF9nbu1AldDJ7P .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-riwF9nbu1AldDJ7P .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-riwF9nbu1AldDJ7P .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-riwF9nbu1AldDJ7P .marker{fill:#333333;stroke:#333333;}#mermaid-svg-riwF9nbu1AldDJ7P .marker.cross{stroke:#333333;}#mermaid-svg-riwF9nbu1AldDJ7P svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-riwF9nbu1AldDJ7P .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-riwF9nbu1AldDJ7P .cluster-label text{fill:#333;}#mermaid-svg-riwF9nbu1AldDJ7P .cluster-label span{color:#333;}#mermaid-svg-riwF9nbu1AldDJ7P .label text,#mermaid-svg-riwF9nbu1AldDJ7P span{fill:#333;color:#333;}#mermaid-svg-riwF9nbu1AldDJ7P .node rect,#mermaid-svg-riwF9nbu1AldDJ7P .node circle,#mermaid-svg-riwF9nbu1AldDJ7P .node ellipse,#mermaid-svg-riwF9nbu1AldDJ7P .node polygon,#mermaid-svg-riwF9nbu1AldDJ7P .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-riwF9nbu1AldDJ7P .node .label{text-align:center;}#mermaid-svg-riwF9nbu1AldDJ7P .node.clickable{cursor:pointer;}#mermaid-svg-riwF9nbu1AldDJ7P .arrowheadPath{fill:#333333;}#mermaid-svg-riwF9nbu1AldDJ7P .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-riwF9nbu1AldDJ7P .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-riwF9nbu1AldDJ7P .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-riwF9nbu1AldDJ7P .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-riwF9nbu1AldDJ7P .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-riwF9nbu1AldDJ7P .cluster text{fill:#333;}#mermaid-svg-riwF9nbu1AldDJ7P .cluster span{color:#333;}#mermaid-svg-riwF9nbu1AldDJ7P div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-riwF9nbu1AldDJ7P :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}UserActionBraveZipkinUI主要功能 拦截请求收集时序数据关联、传播追踪上下文。最后追踪数据会上报到Zipkin等服务器。
下面介绍Brave的几个核心功能
1、Propagation
B3Propagation
Brave使用B3传播协议即在http请求头中存储固定字段来传递链路信息。如x-b3-traceId、x-b3-spanId、x-b3-sampled等 举例 在整合spring cloud sleuth项目中针对任一请求可在请求头中查看到相应的链路追踪字段信息。
x-b3-traceid:3bc54fac863bedb4 x-b3-spanid:e9d611683cf3613c x-b3-parentspanid:3bc54fac863bedb4 x-b3-sampled:0 注意 若B3已有固定字段满足不了您的需求还可以通过BaggageField添加自定义业务字段。 步骤
主要包括两个重要环境Inject注入和Extract提取。 其中Inject即将b3字段信息添加到http header中而Extract正好相反及从http header中提取相应b3信息。 2、Span
Span实际记录每个功能块执行信息的类。
1数据内容
主要包括以下三部分内容 基础数据用于跟踪树中节点的关联和界面展示包括traceId、spanId、parentId、name、timestamp和duration。 name用于在跟踪树节点的时间条上展示。 timestamp用于记录调用的起始时间 duration表示此次调用的总耗时在跟踪树中将表示成该Span的时间条的长度。 Annotation数据用来记录关键事件只有四种csClient Send、srServer Receive、ssServer Send、crClient Receive所以在Span模型中Annotation是一个列表长度最多为4。 每种关键事件包含value、timestamp和endpointvalue就是cs、sr、ss和cr中的一种timestamp表示发生的时间endpoint用于记录发生的机器ip和服务名称serviceName。 BinaryAnnotation数据如果需要绑定一些业务数据日志的话可以将数据写入BinaryAnnotation中它的结构和Annotation数据一模一样在Span中也是一个列表这里就不再阐述但BinaryAnnotation中不宜放太多数据不然将导致性能和体验的下降。
2分类
NoopSpan从不上报Zipkin RealSpan可能上报在finish()后上报 LazySpan延迟创建Span当第一个公共方法调用时
3、Sample
采样器并非所有的请求数据都会记录并上报Zipkin。