
skywalking
文章平均质量分 91
喵喵爱西瓜
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
skywalking7 源码解析 (3) :agent启动服务分析以及性能影响
1. 简介前2篇介绍了 agent 如何去修改我们的业务代码,以及如何去收集、发送 trace 数据,但是agent的作用不仅如此,那么他还对我们的代码做了一些什么事情,会对我们的程序造成什么样的性能影响,本文将为你揭晓2 . BootService 接口方法 SkyWalkingAgent#premain 之前讲解过这是 agent 的入口方法,这个方法的 前半部分都是在 加载配置文件、加载插件以及拦截了类加载器以便后面去修改字节码,在此之外agent还有最后一个步骤,就是去加载所有BootS原创 2020-06-08 12:05:19 · 5737 阅读 · 4 评论 -
skywalking7 源码解析 (2) : agent采集trace数据
1. 简介本文源码解析使用的版本是 skywalking 7.0 , 不同版本实现上可能由一定差异,但是思想上大致相同上篇文章介绍了skywalking-agent的整体架构以及插件的加载原理。skywalking源码解析 (1) : agent插件加载原理但是仅仅知道了他如何去加载插件,那至于在他使用agent去修改业务代码后如何去收集trace数据 那么请继续往下看2. trace数据结构在看源码之前,我们先来了解一下 在skywalking中trace数据 是以什么样的数据结构去保存原创 2020-06-04 17:04:11 · 3921 阅读 · 1 评论 -
skywalking线程池插件,解决lambda使用问题
1. 简介分布式链路追踪其实原理都很简单,每一个请求过来的时候,把一个context存到ThreadLocal里面,然后随着线程一路传递下去就行,一个请求大多数时候都是一个线程去执行下去所以并没有什么问题,但是如果在请求中使用了ThreadPool那么ThreadLocal中的context就会失联(如果使用的是Thread,ThreadLocal是可以继续传递下去的,具体原因可以去看ThreadLocal和ThreadPool的实现这里就不过多解释了),所以需要插件的支持去把这个失联的context给找原创 2020-05-20 16:35:54 · 7913 阅读 · 17 评论 -
skywalking7 源码解析 (1) : agent插件加载原理
1 . 简介本文涉及到的源码取自版本 : apache-skywalking-apm-7.0.0 ,不同版本实现差异可能会有一些区别,但是大体框架上没有变化的 , 一些地方为了方便理解,我拆分了 lamda 表达式,或者把一些写在一起的代码给做了拆分,但是整体逻辑是不变的2. javaAgentskywalking 是一个 分布式追踪系统 , 他可以帮助我们看到一个请求经过了多少个微服务...原创 2020-04-06 19:44:02 · 6491 阅读 · 7 评论