链路追踪——【Brave】第一遍小结
前言
微服务链路追踪系列博客,后续可能会涉及到Brave、Zipkin、Sleuth内容的梳理。
Brave
何为Brave?
github地址:https://github.com/openzipkin/brave
Brave是一个分布式追踪埋点库。
主要功能:
拦截请求,收集时序数据,关联、传播追踪上下文。最后,追踪数据会上报到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数据:用来记录关键事件,只有四种,cs(Client Send)、sr(Server Receive)、ss(Server Send)、cr(Client Receive),所以在Span模型中,Annotation是一个列表,长度最多为4。
每种关键事件包含value、timestamp和endpoint,value就是cs、sr、ss和cr中的一种,timestamp表示发生的时间,endpoint用于记录发生的机器(ip)和服务名称(serviceName)。
BinaryAnnotation数据:如果需要绑定一些业务数据(日志)的话,可以将数据写入BinaryAnnotation中,它的结构和Annotation数据一模一样,在Span中也是一个列表,这里就不再阐述,但BinaryAnnotation中不宜放太多数据,不然将导致性能和体验的下降。
(2)分类
NoopSpan:从不上报Zipkin
RealSpan:可能上报,在finish()后上报
LazySpan:延迟创建Span(当第一个公共方法调用时)
3、Sample
采样器,并非所有的请求数据都会记录并上报Zipkin。
链路追踪——【Brave】第一遍小结相关推荐
- 微服务链路追踪SkyWalking第一课 SkyWalking简介
开篇词:从剖析 SkyWalking 源码到吃透 APM 核心知识 你好,我是你的 SkyWalking 老师徐郡明,网名吴小胖,你也可以叫我胖哥.进入互联网行业工作多年,主要从事基础组件开发相关的工 ...
- ajax请求是宏任务还是微任务_微服务-如何解决链路追踪问题
一.链路追踪 微服务架构是将单个应用程序被划分成各种小而连接的服务,每一个服务完成一个单一的业务功能,相互之间保持独立和解耦,每个服务都可以独立演进.相对于传统的单体服务,微服务具有隔离性.技术异构性 ...
- 使用篇丨链路追踪(Tracing)很简单:链路实时分析、监控与告警
前文回顾: 基础篇|链路追踪(Tracing)其实很简单 使用篇|链路追踪(Tracing)其实很简单:请求轨迹回溯与多维链路筛选 在前面文章里面,我们介绍了单链路的筛选与轨迹回溯,是从单次请求的视角 ...
- SkyWalking优化-打造千亿储能、毫秒查询的链路追踪系统
目录 1.开篇 2.为什么需要全链路监控 3.为什么选择Skywalking 4.预研阶段 4.1 架构和原理 4.2 副作用 5.POC阶段 5.1 对接发布系统 5.2 完善插件补全链路 5.3压 ...
- 《深入理解 Spring Cloud 与微服务构建》第十四章 服务链路追踪 Spring Cloud Sleuth
<深入理解 Spring Cloud 与微服务构建>第十四章 服务链路追踪 Spring Cloud Sleuth 文章目录 <深入理解 Spring Cloud 与微服务构建> ...
- GopherChina第一天小结
GopherChina第一天小结 2019-04-29 07:34 by 轩脉刃, ... 阅读, ... 评论, 收藏, 编辑 GopherChina第一天小结 今天参加了Asta举办的第五届Gop ...
- SpringCloud微服务-服务注册发现-负载均衡-服务调用-服务降级-服务网关-配置中心-消息总线-消息驱动-链路追踪-alibaba-nacos-sentinel-seata理论原理分析
SpringCloud理论技术 概述 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总 ...
- go 链路追踪_【go-micro实践】jaeger分布式链路追踪
安装jaeger jaeger提供一个all in one 的docker镜像,可以快速搭建实验环境 docker run -d --name jaeger -e COLLECTOR_ZIPKIN_H ...
- 微服务架构--链路追踪(Nginx篇)
阅读提示:本文不提供链路追踪的完整解决方案,只提供Nginx层对链路追踪的支持方案! 1 背景介绍 微服务的诞生,解决了传统单体应用的很多问题,如可维护性差.扩展性差和灵活性差等问题(粗粒比较).微服 ...
最新文章
- seaborn可视化水平箱图(Horizontal Boxplot in Python with Seaborn)
- 利用找因子来找方程解的个数
- 微软为NBA提供云计算服务、Google公布Fuchsia OS细节、Zoom用户可选择数据库等|Decode the Week...
- 部署及配置Lync Server 2013 监控功能
- Spring Cloud Alibaa
- mysql查询包含字符串(模糊查询)
- vscode 结束_21 个VSCode 快捷键,让代码更快,更有趣
- linux stress 工具,Linux压力测试工具stress的参数详解
- Python--面向对象学习继承(11.17)
- Centos8.4 配置本地镜像yum源
- 指数温度20190804
- 自主可控计算机大会2019,荣科科技受邀参加2019自主可控计算机大会
- android图片选择器实现说明
- 联想y7000p安全锁孔怎么用_Y7000P-个人使用感受_拯救者笔记本-联想社区
- tcping要安装什么工具linux,Linux下的TCP测试工具——TCPING安装简明教程
- mipi的dsi全称_MIPI-DSI/CSI协议介绍
- 怎么用计算机平方,手机计算器平方怎么按
- 人工智能成热门 苹果谷歌等科技公司竞相涌入改变神经科学研究
- 《Neural Collaborative Filtering》NCF模型的理解以及python代码
- mysql数据字段属性