iarthas
仿写阿里开源工具arthas, 实现了trace、redefine、watch等功能。整体技术栈:Java agent + Java attach API + asm +ASM byteCode Viewer。(Imitate the Alibaba open source tool arthas, and implement trace, redefine, watch and other functions. The overall technology stack:Java agent + Java attach API + asm +ASM byteCode Viewer)
实现思路
阿尔萨斯 原理探究 仿写arthas-TimeTunnel 流量采集
大体效果
timetunnel 流量采集:
2
1
-------------------
开始采集方法:doAdd
2
开始采集方法:doDelet
1
-------------------
复制代码
watch 方法监控
4
1
-------------------
监控当前方法:doAdd
入参:
参数类型-- int@1
参数类型-- String@abc
参数类型-- long@11
参数类型-- Lagent/Job;@agent.Job@7adf9f5f
参数类型-- Lagent/Main;@agent.Main@85ede7b
参数类型-- double@0.11
出参:
参数类型-- int@4
4
1
-------------------
复制代码
trace 方法子调用链路追踪
3
1
-------------------
doAdd
-|javalangThread@sleep
--|method Cost: 1000.0282599999999 ms
-|agentJob@test
--|method Cost: 1000.0648309999999 ms
almost time cost:
--|method Cost: 2005.3643539999998 ms
3
1
-------------------
复制代码
redefine 热加载
Hello World!
Bye Bye
-------------------
Hello World!
Bye Bye
-------------------
Hello World!
Bye Bye
fix good Bye!!
复制代码