2.SkyWalking源码阅读-了解SkyWalking的几个重要概念

更新时间:2023-05-16 03:38:55 阅读: 评论:0

2.SkyWalking源码阅读-了解SkyWalking的⼏个重要概念
1. Span
1. Span代表⼀个完整的调⽤过程,类似于⽅法栈的栈针,如:helloService.hello()的栈针,包括了这个⽅法的出⼊参,环境等。Span可以表⽰
奖品英语⼀个RPC调⽤的栈针,包括请求、响应和调⽤上下⽂。
2. SkyWalking将Span分为三种:
1. EntrySpantachyon
1. 从字⾯理解这个是⼊⼝/进⼊Span。它是指谁的⼊⼝,⼜是进⼊谁呢?以客户端和服务端为例的话,它是服务端的概念,指服务端接收
请求的⼊⼝,进⼊服务端。⼀般是将客户端的信息带⼊给服务端,返回响应数据给客户端。跨进程时使⽤。
2. ExitSpan
1. 从字⾯理解这个是出⼝/离开Span。还以客户端和服务端为例的话,它是客户端的概念,指客户端发送请求的出⼝,离开客户端。⼀般
是将客户端信息带出给服务端,接收服务端响应数据。也是在跨进程时使⽤,与EntrySpan是⼀对。
3. LocalSpan
1. 从字⾯理解这个是本地Span。这个是在多线程时使⽤的,是⼀个⼦线程栈的栈顶元素,表⽰⼀个线程追踪的开始。跨线程时使⽤。
2. ContextCarrier
clot怎么读1. 追踪上下⽂载体。跨进程时使⽤,⽤于装载上⼀个服务端系统的trace信息,传播给下⼀个服务端系统,使各个系统的trace信息可以关联。
2. 举个例⼦:客户端调⽤服务端系统A,A⼜先后同步调⽤B,C。然后系统A返回响应给客户端。skywalking在系统A上⽣成分布式traceId,以
及携带其他扩展或者⽤户的信息,装载到ContextCarrier对象上,传播给B,B会使⽤ContextCarrier上携带的分布式traceId,替换⾃⼰的分布式TraceId。这样A,B,C三个系统的追踪⽇志就关联上了。fighting中文意思>毛孔大的原因
mna
3. ContextSnapshotapplicationdata>blushing
1. 追踪上下⽂快照。跨线程时使⽤,⽤于记录主线程在创建Runnable/Callable/Supplier任务时主线程的追踪上下⽂数据,包括traceId等,t
到⼦线程的任务Runnable/Callable中,⽤于多线程时关联追踪⽇志。
4. RunnableWrapper/CallableWrapper/SupplierWrapper
1. 有没有想过如何拦截和增强多线程,使多线程可以被追踪?如果只是单纯的拦截所有jdk原⽣的Runnable/Callable,会导致除了业务系统以外
的,不需要被追踪的线程也被追踪,浪费了⼤量的内存空间。如SkyWalking框架本⾝使⽤的线程池也会被追踪,但是这个数据对我们来说没有意义。
2. 为了对业务线程任务和框架线程任务进⾏区分,SkyWalking定义了RunnableWrapper/CallableWrapper/SupplierWrapper这⼏个类,以
及@TraceCrossThread注解,提供给业务线程使⽤,SkyWalking只对被Wrapper包装了的,和含有@TraceCrossThread注解的任务进⾏追踪。将需要追踪的线程任务包装成另⼀个类型,⽤来区分开jdk原⽣任务类型。
3. 使⽤举例:
money talks>哪吒之魔童降世经典台词

本文发布于:2023-05-16 03:38:55,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/110132.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:线程   追踪   服务端   客户端   任务   响应   数据   系统
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图