Java
Agent 标签描述

手写SkyWalking-Agent模块(初始化、MySQL、MVC插件编写) 使用ByteBuddy类库和JavaAgent机制实现类似SkyWalking-Agent模式下的无侵入式的动态可插拔功能 准备工作 新建一个springboot程序,带有一个查询数据库的接口 由于程序简单,这里只贴出一些需要的代码 @RestController @RequestMapping("/userInfo") publicclassUserInfoController{ @Resource privateUserInfoServiceuserInfoService; @GetMapping("/li...

(目录) JavaAgent 背景 因在做到SkywalkingAgent的时候,并没有修改程序中任何一行Java代码,就可无侵入式的使用组件,便使用到了JavaAgent技术,接下来对学习学习JavaAgent技术 JavaAgent是什么 JavaAgent这个技术对大多数人来说都比较陌生,但是大家都都多多少少接触过一些。 实际上我们平时用过的很多工具都是基于javaAgent来实现的。 例如:热部署工具JRebel,springboot的热部署插件,各种线上诊断工具(btrace,greys),阿里开源的arthas等等。 javaAgent在JDK1.5以后,我们可以使用agent...

(目录) ※抽象Agent模块(一条指令挂载所有plugins和通用的类与方法的字节码增强框架) ※可插拔式插件加载实现要点分析 怎么做到只指定一个-javaagent参数 怎么加载多个plugin? 怎么把typeDescription和要拦截的method对应起来 怎么把typeDescription和要拦截的method的拦截器Interceptor对应起来 接下来我们依次解决这些问题,代码思路借鉴SkyWalking-Agent模块的源码 构建以下目录结构的项目↓↓ 实现只指定一个-javaagent参数,实现挂载所有jar SkyWalking源码plugins目录下有...