`
mingren135
  • 浏览: 72445 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

btrace-实战线上问题

 
阅读更多

BTrace:https://kenai.com/projects/btrace,BTrace is a safe, dynamic tracing tool for the Java platform. BTrace can be used to dynamically trace a running Java program (similar to DTrace for OpenSolaris applications and OS). BTrace dynamically instruments the classes of the target application to inject tracing code ("bytecode tracing"). Tracing code is expressed in Java programming language. 

 

BTrace介绍:一个Java的动态跟踪工具,BTrace的工作的基本原理是把跟踪的代码动态替换到被跟踪的Java程序内,其实现机制是Sun Attach API + BTrace脚本解析引擎 + Objectweb ASM + JDK6 Instumentation,项目主页是在这里,用户指南点击这里。

 

BTrace使用:

1)解压并加可执行权限

tar xvf btrace-bin.tar.gz
chmod +x bin/btrace

 

2)查找java的进程号pid

ps aux | grep "java"

3)编写btrace脚本:需要看到调用参数,因此import额外的class

import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;
import com.xxx.OrderQuery;

@BTrace
public class TestMethod {
    @OnMethod(
        clazz="com.xxx.impl.OrderServiceImpl",
        method="getSingleOrderById"
    )
    public static void test(OrderQuery orderQuery) {
                println(strcat("parameter tid: ",str(orderQuery.tid)));
    }
}

 4)执行脚本:注意build目录下新增了com目录,包含接口参数类型的class

[qinde@sirius049090.cm4 build]$ ll
total 772
-rw-r--r-- 1 qinde users 273544 Jul 31 12:37 btrace-agent.jar
-rw-r--r-- 1 qinde users 171502 Jul 31 12:37 btrace-boot.jar
-rw-r--r-- 1 qinde users 325121 Jul 31 12:37 btrace-client.jar
drwxr-xr-x 3 qinde users   4096 Jan 14 16:08 com

[qinde@sirius049090.cm4 btrace]$ ls
aa.txt  bin  build  COPYRIGHT  docs  LICENSE.txt  README.txt  samples  TestMethod.java  THIRDPARTYLICENSEREADME.txt

[qinde@sirius049090.cm4 btrace]$ sudo -u admin ./bin/btrace -cp build/ 17794 TestMethod.java

 

PS

1)Please set JAVA_HOME before running this script,需要EXPORT环境变量

export JAVA_HOME=/opt/xxx/java

2)案例记录:beta发布,打开新业务开关时,发现日志中有npe,怀疑和请求参数有关,但日志中看不到参数,因此准备以上的btrace脚本,发现确实有未预料到的参数哈。。真好用啊!

3)返回值,location=@Location(Kind.RETURN)  

 

 

 

分享到:
评论

相关推荐

    btrace-bin-1.3.11.1.zip

    最新的btrace-bin-1.3.11.1.zip,以前的包用起来缺少一个文件,特意下载了最新的压缩包

    btrace-bin-1.3.11.zip

    btrace-bin-1.3.11.zip 目前最近的版本,java调度的绝对利器

    net-java-btrace-visualvm.nbm

    net-java-btrace-visualvm.nbm java visualvm btrace 插件

    btrace-bin.zip

    BTrace是一款强大的Java线上诊断和分析工具,它充分利用了Oracle HotSpot虚拟机的动态类替换功能,允许开发者在不重启应用程序的情况下,实时地添加或修改类的行为,特别是用于添加日志输出,以便于线上问题的调试。...

    btrace-bin-1.3.9.tgz

    标题中的"btrace-bin-1.3.9.tgz"是BTrace的1.3.9版本的二进制包,以tgz格式压缩,方便用户下载和部署。 **主要特点与功能** 1. **动态插入**: BTrace允许开发者在运行时向Java程序的类中插入自定义的追踪代码,...

    BTrace安装包 btrace-bin-1.3.11.3.zip + btrace-src-1.3.11.3.zip

    btrace-bin直接解压缩配置环境变量后即可运行使用。 java监控调试工具虚拟机监控程序,利用BTrace可以在线监控java程序状态。 BTrace是一种安全,动态的Java跟踪工具。BTrace通过动态(字节码)检测正在运行的Java...

    btrace-client-1.0.4.jar

    jar包,亲测可用

    btrace-boot-1.2.3.jar

    jar包,亲测可用

    btrace-agent-1.2.3.jar

    jar包,亲测可用

    btrace-release-1.3.11.3.zip

    标题中的 "btrace-release-1.3.11.3.zip" 表明这是一个 Btrace 的特定发布版本,版本号为 1.3.11.3,通常包含已编译的库文件、文档和其他必要的资源。 在 Java 开发中,性能监控是至关重要的,因为这有助于识别和...

    BTrace - 适用于 Java 平台的安全动态跟踪工具.zip

    构建 BTrace设置您需要安装以下应用程序Git(可选,默认启动器是捆绑gradlew包装器)Gradle建造Gradlecd <btrace>./gradlew :btrace-dist:build二进制 dist 包可以作为 *.tar.gz、*.zip、*.rpm 和 *.deb 文件找到...

    Btrace-bin-1.3.10,适用于jdk1.7(+)

    java线上问题定位神器,Btrace-bin-1.3.10,适用于jdk1.7(+),解压即可使用,一般人我不告诉他。

    btrace-bin-1.3.11.3.zip

    btrace-bin-1.3.11.3.zip java监控调试工具虚拟机监控程序

    btrace-bin-1.3.9

    BTrace作为线上问题定位神器,它在侵入、安全、资源占用等方面表现的都非常出色。

    btrace-bin-1.3.11.tgz.tar.gz

    本文将围绕“btrace-bin-1.3.11.tgz.tar.gz”这一最新版本的BTrace bin包,探讨其主要组件、使用方法以及相关知识点。 首先,我们看到压缩包内包含了诸如COPYRIGHT、LICENSE等基础文件。这些文件是开源软件的重要...

    BTrace - a safe, dynamic tracing tool for the Java platform.zip

    BTrace - a safe, dynamic tracing tool for the Java platform

    BTrace-一个用于Java平台的安全动态的跟踪工具

    在压缩包文件"btraceio-btrace-9933f19"中,我们可以推测这是BTrace的一个版本或者构建,其中可能包含了BTrace的源代码、库文件以及相关的文档和示例。对于想要深入了解或定制BTrace功能的开发者来说,这是一个重要...

    btrace-jars-3.0-sources.jar

    jar包,亲测可用

    btrace-jars-3.1.1-sources.jar

    jar包,亲测可用

    btrace java线上debug神器

    总之,BTrace作为Java线上调试的神器,为开发者提供了高效的问题排查手段,但同时也需要我们合理、谨慎地运用,确保不影响系统的稳定性和性能。熟悉并掌握BTrace,无疑能提升我们在生产环境中的故障排查能力。

Global site tag (gtag.js) - Google Analytics