如何实现自己的阿尔萨斯(arthas)

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 流量采集

阿尔萨斯 原理探究 仿写arthas-watch

阿尔萨斯 原理探究 仿写arthas-trace

阿尔萨斯 原理探究 仿写arthas-redefine

阿尔萨斯 原理探究 asm再认识(转载)

阿尔萨斯 原理探究 agentmain实践

阿尔萨斯 原理探究 premain实践

阿尔萨斯 原理探究 预备知识

阿尔萨斯 原理探究 初体验(转载)

大体效果

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!!
复制代码

转载于:https://juejin.im/post/5d31d656f265da1b8c19c471

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值