View Code? Open in Web Editor
NEW
目前市面的全链路监控系统基本都是参考Google的Dapper来做的,本专题主要通过六个章节的代码实战,来介绍如何使用javaagent以及字节码应用,来实现一个简单的java代码链路流程监控。 章节列表 - 基于JavaAgent的全链路监控一《嗨!JavaAgent》 - 基于JavaAgent的全链路监控二《通过字节码增加监控执行耗时》 - 基于JavaAgent的全链路监控三《ByteBuddy操作监控方法字节码》 - 基于JavaAgent的全链路监控四《JVM内存与GC信息》 - 基于JavaAgent的全链路监控五《ThreadLocal链路追踪》 - 基于JavaAgent的全链路监控六《开发应用级监控》 关注微信公众号,bugstack虫洞栈,回复获取源码
Home Page: https://bugstack.cn/
itstack-demo-agent's Introduction
itstack-demo-agent 基于JavaAgent的全链路监控
目前市面的全链路监控系统基本都是参考Google的Dapper来做的,本专题主要通过六个章节的代码实战,来介绍如何使用javaagent以及字节码应用,来实现一个简单的java代码链路流程监控。
微信公众号:bugstack虫洞栈,欢迎您的关注&获取源码!
itstack-demo-agent's People
Contributors
itstack-demo-agent's Issues
enhanceMethod方法中的字节码增强建议修改为CtBehavior.insert*方法 。 之前那种方式在增强方法中有调用其他类方法时,可能会有问题
// 前置增强: 打入时间戳
method.addLocalVariable("start", CtClass.longType);
method.insertBefore("start = System.nanoTime();");
final StringBuilder source = new StringBuilder();
// 保留原有的代码处理逻辑
// 后置增强,计算输出方法执行耗时
source
.append("System.out.print("method:[")
.append(methodName).append("]");").append("\n")
.append("System.out.println(" cost:[" +(System.nanoTime() - start)+ "ns]");")
;
method.insertAfter(source.toString());
您好,请问是不是JDK9之后 bytebuddy就不再支持了呢