同步操作将从 NoBugBoy/ETrace 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
已经上传至中央maven仓库 https://mvnrepository.com/search?q=com.github.nobugboy
引言
在使用Arthas的过程中,感觉有些功能很好用,但是有些不敢敲命令行的用起来会比较麻烦,,本着学习的态度,自己设计了一套无需停机,无侵入,埋点,热修复,监控等功能的应用,并提供了WEB页面进行操作,并且会不断集成一些常用的功能 。
在日常的工作中,经常会遇到一些让人头疼的问题,比如在上线前测试量不够,导致生产环境出现了一个小bug,影响了功能的正常使用,这个时候可能就是因为一小行代码所导致,但是为了修复bug不得不重启程序(没办法),这时候客户和老板可能就不满意了(用户量小还好),所以针对这种情况,自己设计了一套可以在线补偿的工具。
简介
在决定好要设计这个程序的时候,调研了一些关键的技术,如下
技术名称 | 作用 |
---|---|
Javaagent | 在运行前加载,或在运行中对字节码进行操作 |
VirtualMachine | 在运行中附着到目标进程上,并调用agent |
整个工程分为三个部分,前端页面,与页面交互的服务端,操作目标Java进程的agent
工程 | 技术 |
---|---|
web | Vue + Ant design |
server | Springboot+Websocket |
agent | Javassist + cfr + JavaCompiler |
#版本号去git上查看
wget http://maven.aliyun.com/nexus/content/groups/public/com/github/nobugboy/ETrace/1.2.4/ETrace-1.2.4.jar
java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar ETrace-1.2.4.jar
打开浏览器输入运行程序的ip:9675,进入首页输入admin,admin123进入控制台页面
配置ip,如果是本地运行localhost即可,如果是内网(比如VM跑了linux)就输入内网ip例如(192.168.121.130),如果是在服务器部署则输入服务器外网IP,若不知道IP可点击查询外网IP
找到对应的操作按照步骤操作即可,需要注意的是点击agnet到进程后需要等待返回 '连接成功,等待发送指令' 然后继续操作,如果没有反应,则上一步的ip配置有误
server端源码(vue已经打包在了static下,启动直接访问lp:9675即可),授权这里其实没做,默认是同户名是admin,密码是admin123,如果需要打包记得关闭单元测试 github地址
代码在IDEA可以直接运行,如果通过jar包运行需要额外指定参数:
java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar ETrace-1.2.4.jar
# 如果java环境变量默认是$JAVA_HOME则不需要加参数
java -jar ETrace-1.2.4.jar
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。