线上诊断神器BTrace快速入门

使用背景

生产环境系统发生问题时,定位问题需要获取系统运行时的相关数据,如方法参数、返回值、全局变量、堆栈信息等。为了获取这些数据,需要修改代码,将数据输出到日志文件,再发布到生产环境。这种方式,一方面将增大定位问题的成本和周期,对于紧急问题无法做到及时定位及解决;另一方面重新部署后环境很大程度上已被破坏,很难重现问题。BTrace在这种背景环境下应运而生。

BTrace简述

BTrace(Byte Trace)是Sun推出的一款Java 动态、安全追踪(监控)工具,可以在不停机的情况下监控系统运行情况,并且做到最少的侵入,占用最少的系统资源。

官方网址:https://kenai.com/projects/btrace

BTrace在使用上做了很多限制,如不能创建对象、不能使用数组、不能抛出或捕获异常、不能使用循环、不能使用synchronized关键字、脚本的属性和方法都必须使用static修饰等,具体限制条件可参考用户手册。根据官方声明,不当地使用BTrace可能导致JVM崩溃,如BTrace使用错误的.class文件,所以,可以先在本地验证BTrace脚本的正确性再使用。

BTrace优点

  • 安全性:安全性不会导致对目标Java进程的任何破坏性影响
  • 无侵入性:无需对原有代码做任何修改,降低上线风险和测试成本,并且无需重启系统

安装BTrace

1)下载地址:https://github.com/btraceio/btrace/releases
2)解压缩
3)设置环境变量

BTRACE_HOME=/usr/local/btrace-bin-2.0.2
export BTRACE_HOME
export PATH=$PATH:$BTRACE_HOME/bin

使用BTrace

作用:运行Btrace脚本

命令格式:

btrace <pid>
btrace <pid> <btrace-script>

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/25/online-diagnostic-tool-btrace-quick-start/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
线上诊断神器BTrace快速入门
使用背景 生产环境系统发生问题时,定位问题需要获取系统运行时的相关数据,如方法参数、返回值、全局变量、堆栈信息等。为了获取这些数据,需要修改代码,将……
<<上一篇
下一篇>>
文章目录
关闭
目 录