日志追踪-Tracing

1. 前言

image.png

  • 分布式链路跟踪中有两个重要的概念:跟踪(trace)和 跨度( span)。trace 是请求在分布式系统中的整个链路视图,span 则代表整个链路中不同服务内部的视图,span 组合在一起就是整个 trace 的视图
  • 在整个请求的调用链中,请求会一直携带 traceid 往下游服务传递,每个服务内部也会生成自己的 spanid用于生成自己的内部调用视图,并和 traceid 一起传递给下游服务

2. TraceId 生成规则

  • 这种场景下,生成的 ID 除了要求唯一之外,还要求生成的效率高吞吐量大traceid 需要具备接入层的服务器实例自主生成的能力,如果每个 trace 中的 ID 都需要请求公共的 ID 服务生成,纯纯的浪费网络带宽资源。且会阻塞用户请求向下游传递,响应耗时上升,增加了没必要的风险。所以需要服务器实例最好可以自行计算 tracid,spanid,避免依赖外部服务
  • 产生规则:服务器 IP + ID 产生的时间 + 自增序列 + 当前进程号 ,如:0ad1348f1403169275002100356696
  • 前 8 位 0ad1348f 即产生 TraceId 的机器的 IP,这是一个十六进制的数字,每两位代表 IP 中的一段,我们把这个数字,按每两位转成 10 进制即可得到常见的 IP 地址表示方式 10.209.52.143,您也可以根据这个规律来查找到请求经过的第一个服务器
  • 后面的 13 位 1403169275002 是产生 TraceId 的时间。之后的 4 位 1003 是一个自增的序列,从 1000 涨到 9000,到达 9000 后回到 1000 再开始往上涨。最后的 5 位 56696 是当前的进程 ID,为了防止单机多进程出现 TraceId 冲突的情况,所以在 TraceId 末尾添加了当前的进程 ID

3. SpanId 生成规则

  • span 是层的意思,比如在第一个实例算是第一层, 请求代理或者分流到下一个实例处理,就是第二层,以此类推。通过层,SpanId 代表本次调用在整个调用链路树中的位置
  • 假设一个服务器实例 A 接收了一次用户请求,代表是整个调用的根节点,那么 A 层处理这次请求产生的非服务调用日志记录 spanid 的值都是 0,A 层需要通过 RPC 依次调用 B、C、D 三个服务器实例,那么在 A 的日志中,SpanId 分别是 0.1,0.2 和 0.3,在 B、C、D 中,SpanId 也分别是 0.1,0.2 和 0.3;如果 C 系统在处理请求的时候又调用了 E,F 两个服务器实例,那么 C 系统中对应的 spanid 是 0.2.1 和 0.2.2,E、F 两个系统对应的日志也是 0.2.1 和 0.2.2
  • 根据上面的描述可以知道,如果把一次调用中所有的 SpanId 收集起来,可以组成一棵完整的链路树
  • spanid 的生成本质:在跨层传递透传的同时,控制大小版本号的自增来实现的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/369228.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中科星图——Sentinel-1_SAR_GRD数据集

数据名称: Sentinel-1_SAR_GRD 数据来源: Copernicus 时空范围: 2022年8月-2023年2月 空间范围: 全国 数据简介: 哨兵1号(Sentinel-1)卫星是欧洲航天局哥白尼计划(GMES&…

全球降水数据产品介绍

一、数据基本概况 降水数据在气象学、水文学、农业、生态学等领域有着广泛的用途。以下是一些降水数据的主要用途: 气象预报和监测: 降水数据是气象预报的重要组成部分,对预测天气、气候和自然灾害(如暴雨、洪水)至关…

day38 斐波那契数 爬楼梯 使用最小花费爬楼梯

题目1:509 斐波那契数 题目链接:509 斐波那契数 题意 斐波那契数列由0和1开始 后面的每一项数字都是前面两项数字之和 计算F(n) 动态规划 动规五部曲: 1)dp数组及下标i的含义 dp[i] : 第i个斐波那契数值 i: 第i个斐…

使用 Visual Studio Code 在远程计算机上调试 PostgreSQL

使用 Visual Studio Code 在远程计算机上调试 PostgreSQL 1. 概述 PostgreSQL 是一个功能强大的开源关系数据库管理系统,适用于各种应用程序。在开发过程中,调试 PostgreSQL 对于识别和解决问题至关重要。在本博客中,我们将手把手教你使用客…

【考研408】操作系统笔记

文章目录 [toc] 计算机系统概述操作系统的基本概念操作系统的概念和特征操作系统的目标和功能(**处理器管理、存储器管理、设备管理、文件管理、向用户提供接口、扩充机器**) 操作系统的发展与分类操作系统的运行环境操作系统的运行机制 操作系统的体系结…

Node.js-1

Node.js 简介 定义:Node.js 是一个跨平台 JavaScript 运行环境,使开发者可以搭建服务器端的 JavaScript 应用程序 为什么 Node.js 能执行 JS 代码: Chrome 浏览器能执行 JS 代码,依靠的是内核中的 V8引擎(即&#x…

【ELK】logstash快速入门

1.概述 1.1.什么是logstash? 之前我们聊了es,并且用docker搭建了一个eskibana的环境。es目前最普遍的用法是用来存储日志的,然后结合kibana对日志做一些可视化的工作。既然要收集日志,就面临着一个问题: 各个系统的…

Linux下新建用户

新建用户 sudo adduser -m username添加密码 sudo passwd username设置权限 sudo vi /etc/sudoers在user privilege这一行,仿照root,另起一行,添加上 设置命令解释器 sudo vi /etc/passwd找到新建用户名,将sh改为bash vi中…

基于知识图谱的少样本和零样本学习综述

论文题目:Zero-Shot and Few-Shot Learning With Knowledge Graphs: A Comprehensive Survey 本文作者:陈矫彦(曼彻斯特大学&牛津大学)、耿玉霞(浙江大学)、陈卓(浙江大学)、Je…

快速理解复杂系统组成学习内容整合

目录 一、复杂系统组成 二、接入系统 (Access System) 三、应用系统 (Application System) 四、基础平台 (Foundation Platform) 五、中间件 (Abundant External Middleware) 六、支撑系统 (Supporting System) 参考文章 一、复杂系统组成 复杂系统是由多个相互关联、相…

【Java程序设计】【C00245】基于Springboot的家政服务管理平台(有论文)

基于Springboot的家政服务管理平台(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的家政服务管理平台 本系统分为前台模块、管理员功能模块、用户功能模块以及服务人员功能模块。 前台模块:系统首页的…

【云原生】docker安全与https加密的超文本传输协议CA证书生成

目录 一、docker安全 二、http与https的区别 三、为什么要使用 SSL 证书? 四、https证书认证的过程 https单向认证的访问流程 https双向认证的访问流程 五、如何获取证书? 六、实操获取证书并验证 1、通过阿里云获取证书 2、通过mkcert获取证书…

【Vue3实战】TypeScript前端实战基础

【Vue3实战】TypeScript前端实战基础 前言一、TypeScript的由来二、什么是TypeScript?三、静态类型检查四、类型注解和类型推导五、可选参数和默认参数六、接口和类型别名接口接口的可选设置类型 七、类和继承接口的继承交叉类型模拟继承 八、泛型什么是泛型泛型接口泛型函数泛…

深度学习驱动下的自然语言处理进展及其应用前景

文章目录 每日一句正能量前言技术进步应用场景挑战与前景自然语言处理技术当前面临的挑战未来的发展趋势和前景 伦理和社会影响实践经验后记 每日一句正能量 一个人若想拥有聪明才智,便需要不断地学习积累。 前言 自然语言处理(NLP)是一项正…

LeetCode---382周赛---位运算

题目列表 3019. 按键变更的次数 3020. 子集中元素的最大数量 3021. Alice 和 Bob 玩鲜花游戏 3022. 给定操作次数内使剩余元素的或值最小 一、按键变更的次数 题目简单明了,就是看相邻的两个字母是否相等,不区分大小写,直接遍历统计即可…

Linux下tar命令详解

tar #归档命令 格式 • Tar -参数 [args]..... 参数: 必选参数: 辅助参数: 额外参数: # 打包时排除某个文件 tar cf 文件名.tar --exclude路径/文件 路径 注:此处的路径前后需要保持保持一致,统一…

【Langchain+Streamlit】打造一个旅游问答AI

利用LangchainStreamlit打造一个交互简单的旅游问答AI机器人,如果你有openai账号,可以按照如下的网址直接体验,如果你没有的话可以站内私信博主要一下临时key体验一下: 产品使用传送门—— http://101.33.225.241:8501/ 这里有演示效果和代码…

AIGC专题:2024年生成式人工智能预测报告(英文版)

今天分享的是AIGC系列深度研究报告:《AIGC专题:2024年生成式人工智能预测报告(英文版)》。 (报告出品方:CBINSIGHTS) 报告共计:112页 我们没有足够的高质量数据来训练LLM 研究人员…

计算机视觉中的目标跟踪

从保护我们城市的监控系统到自动驾驶车辆在道路上行驶,目标跟踪已经成为计算机视觉中的一项基础技术。本文深入探讨了目标跟踪,探索了其基本原理、多样化的方法以及在现实世界中的应用。 什么是目标跟踪? 目标跟踪是深度学习在计算机视觉中广…

刷存在感,Excel转Protobuf/Json通用配置文件

使用场景 最近工作流中有将Excel转Protobuf作为配置文件的技术方案。具体实现是先定一个proto文件,再在一个对应excel表中定义对应字段,由策划在excel进行更改。proto文件可以生成对应语言的脚本,然后将excel转成对应protobuf的binary。 我…