线上诊断神器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>
上一篇 阿里巴巴Canal之Canal Admin
下一篇 Arthas 基础教程
目录
文章列表
1 MongoDB数据库基本操作
MongoDB数据库基本操作
2
支付宝错误码ILLEGAL_PARTNER_EXTERFACE
支付宝错误码ILLEGAL_PARTNER_EXTERFACE
3
响应式编程以及 Spring Boot Webflux 快速入门
响应式编程以及 Spring Boot Webflux 快速入门
4
Linux firewall-cmd 命令详解
Linux firewall-cmd 命令详解
5
Java 命令行引用jar包的方法
Java 命令行引用jar包的方法
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。