java agent 监控_Java Agent 和 Javassist 进行修改字节码加入监控

问题描述

1、我们意图在实际操作之前加入一些字节码进行监控,例如对 慢sql, dubbo 并发 ,开发发布对时候对mybatis/ibatis对配置文件做检查

问题出现的环境背景及自己尝试过哪些方法

2、我们使用 Instrumentation 在启动的时候,将我们监控开发的 Agent jar 包导入即可,但是发现使用 javassist 的如下代码不起作用

ClassPool pool = new ClassPool();//这一行之后就没有运行了,

byte[] transformed = new byte[0];

CtClass cl = null;

try {

cl = pool.get(className.replaceAll("/", "."));

System.out.println("four");

CtBehavior[] methods = cl.getDeclaredBehaviors();

for (CtBehavior method : methods) {

if (!method.isEmpty()) {

doMethod(method);

}

}

transformed = cl.toBytecode();

} catch (CannotCompileException | NotFoundException | IOException io) {

io.printStackTrace();

} finally {

if (cl != null) {

cl.detach();

}

}

return transformed;

pom.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

top.huzhurong.agent

test

1.0-SNAPSHOT

org.javassist

javassist

3.23.1-GA

org.apache.maven.plugins

maven-compiler-plugin

3.6.1

1.8

1.8

utf-8

org.apache.maven.plugins

maven-jar-plugin

2.3.1

true

test.Agent

javassist-3.23.1-GA.jar

true

true

google,百度也没有找到什么,本身也不太好调试,以前使用 ASM 是可以的。提前感谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值