首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏一英里广度一英寸深度的学习

    Btrace学习笔记

    btrace拦截一个url参数。 import com.sun.btrace.AnyType; import com.sun.btrace.BTraceUtils; import com.sun.btrace.annotations.* ; import com.sun.btrace.BTraceUtils; import com.sun.btrace.annotations.*; @BTrace public class PrintArgsSimple 下面构造一个btrace脚本,拦截进程中的异常。 package mooc.birdsky.java.performance.btrace; import com.sun.btrace.BTraceUtils; import com.sun.btrace.annotations

    95130发布于 2018-12-27
  • 来自专栏stream process

    btrace 笔记

    转载请注明原链接地址 http://www.cnblogs.com/dongxiao-yang/p/6134393.html btrace 是一个可以不用重启线上java业务查问题的神器,记一下自己折腾半天写的几个 脚本 /* BTrace Script Template */ import com.sun.btrace.annotations.*; import static com.sun.btrace.BTraceUtils ; import com.sun.btrace.BTraceUtils; import com.sun.btrace.Profiler; import com.sun.btrace.annotations /bin/btrace <pid> /Users/dongxiaoyang/Desktop/<btracescript.java> 参考资料 1 用BTrace排查性能问题 2 Btrace入门到熟练小工完全指南 3 使用jvisualvm.exe 的Btrace插件介绍/使用教程 4 BTrace User's Guide

    51110发布于 2020-03-05
  • 来自专栏企鹅号快讯

    BTrace使用小结

    BTrace action methods in the same BTrace class. 将btrace上传到服务器上,并设置环境变量,将btrace等命令加入命令行PATH中: 首先,在目标服务器(server)上执行(使用nc命令): $ mkdir -p ~/zhouwei/btrace-bin -1.3.9 ; cd ~/zhouwei/btrace-bin-1.3.9 ; nc -l 8080 > btrace-bin-1.3.9.tgz ; tar zxvf btrace-bin-1.3.9 =$BTRACE_HOME/bin:$PATH ; cd ~/zhouwei ; ll ; which btrace 如果服务器上已经有btrace包,则只需要执行上面后半部分的命令来设置环境变量即可: ,则使用btrace -p 2021 ...来指定其它端口。 Linux下已经有个命令也叫btrace,注意别用混了。

    1.6K80发布于 2018-01-09
  • 来自专栏一英里广度一英寸深度的学习

    Btrace学习笔记二

    Btrace拦截行号 被拦截对象(Btrace只能在本地运行) ? 拦截行号的btrace脚本 import com.sun.btrace.AnyType; import com.sun.btrace.BTraceUtils; import com.sun.btrace.annotations :"+line); BTraceUtils.println("pcn"+pcn); BTraceUtils.println("pmn"+pmn); } } 运行btrace 脚本 btrac 311 /Users/wangsen/java/performance/src/main/java/mooc/birdsky/java/performance/btrace/PrintArgsSimple.java mooc.birdsky.java.performance.Controller.BtraceController pmn:hello line:12 line=-1,拦截全部行 curl http://localhost:8080/btrace

    56930发布于 2018-12-27
  • 来自专栏Python自动化测试

    BTrace监控调试(一)

    在https://github.com/btraceio/btrace中下载btrace-v2.2.3-bin.tar.gz,下载成功后进行解压,配置btrace的环境变量,配置成功后在控制它输入来验证配置环境的准确 btrace --version BTrace v.2.2.3 (71df581ff6c89afa41ef611b987fc87c17ee8537) 环境搭建成功后,运行Btrace主要有两种方式,分别是 然后编写BTrace的脚本,通过BTrace的脚本达到监控执行的是那个类那个方法以及API执行中它的参数信息。 import org.openjdk.btrace.core.BTraceUtils; import org.openjdk.btrace.core.annotations.*; import org.openjdk.btrace.core.types.AnyType 执行BTrace命令行的模式是首先获取被运行程序的PID信息,然后执行BTrace的脚本,具体过程如下所示。

    50920编辑于 2023-02-28
  • 来自专栏用户1337634的专栏

    BTrace实现原理

    BTrace工作原理 BTrace是基于动态字节码修改技术(Hotswap)来实现运行时java程序的跟踪和替换。 BTrace工作序列图 Java Compile API BTrace使用Compile API把用户编写的源码文件编译成字节码文件 在 JDK 6 中,类库通过 javax.tools 包提供了程序运行时调用编译器的 关键逻辑 BTrace的入口类在https://github.com/btraceio/btrace/blob/master/src/share/classes/com/sun/btrace/client 在其main方法中,可以看到起最终的核心逻辑是在https://github.com/btraceio/btrace/blob/master/src/share/classes/com/sun/btrace 系列 BTrace常用场景示例 参考 动态追踪技术漫谈 Instrumentation 新功能 BTrace 原理浅析 Java Attach API 编译器 API Java ASM介绍

    1.2K20发布于 2019-03-27
  • 来自专栏物流IT圈

    使用BTrace性能跟踪

    BTrace是一个开源项目,开始于2007年,名声鹊起得益于2008年的JavaOne会议。    BTrace可以帮助我们做到这一点,通过写一个短和直接的Java代码: import com.sun.btrace.annotations.*; import com.sun.btrace.BTraceUtils 每个BTrace脚本由探头Probes (切入点方面pointcuts)和Actions操作(advice)组成。 在目标JVM是一个动态插入BTrace的代理。 BTrace客户端(无论是BTrace命令行或Visual VM的 BTrace插件)将命令发送到代理,并得到响应。 BTrace代理测量类被加载到目标JVM并重新加载已加载的类。

    70410发布于 2019-07-16
  • 来自专栏JavaQ

    神器BTrace快速入门

    BTrace在这种背景环境下应运而生了。 根据官方声明,不当地使用BTrace可能导致JVM崩溃,如BTrace使用错误的.class文件,所以,可以先在本地验证BTrace脚本的正确性再使用。 4.安装BTrace 1)下载地址:https://github.com/btraceio/btrace/releases/tag/v1.3.8.3-1 2)解压缩 3)设置环境变量 BTRACE_HOME =/Users/wlxs/btrace-bin-1.3.8.3 export BTRACE_HOME export PATH=$PATH:$BTRACE_HOME/bin 5.使用btrace 作用:运行 8.注解说明 1)类注解 —@com.sun.btrace.annotations.BTrace指定该java类为一个btrace脚本文件。

    1.5K30发布于 2018-04-04
  • 来自专栏技术趋势

    btrace-(字节码)动态跟踪工具

    源码下载:https://gitee.com/hong99/spring.git (springboot_btracebtrace是什么? https://github.com/btraceio/btrace.git (gradle) 使用文档:https://github.com/btraceio/btrace/wiki#btrace https btrace可以用来做代码日志跟进,以及方法执行过程中分析; btrace可以用来监控接口性能变慢,分析各个方法的耗时; btrace可以用来分析gc及调用栈信息; btrace可以用来分析异常信息; btrace可以用来收集系统相关信息; .... btrace的使用 下载btrace的运行包: https://github.com/btraceio/btrace/releases 配置环境 $PATH:$JAVA_HOME/bin" #关键的配置 btrace环境 BTRACE_HOME=/Users/csh/Desktop/tools/btrace export BTRACE_HOME

    83720编辑于 2022-12-01
  • 来自专栏用户1337634的专栏

    BTrace常用场景示例

    BTrace是线上不重启服务的情况下定位问题的神器,本文介绍了最常用的几种场景 定位慢调用 查看com.tim.BtraceCase#count耗时很长时的上下文:入参、成员变量等信息 @BTrace 其中关键是location = @Location(value = Kind.ERROR) @BTrace public class Debug { @OnMethod( BtraceCase.java:22) com.tim.BtraceCase.main(BtraceCase.java:10) ---- 输出统计信息 http://github.com/btraceio/btrace /blob/master/samples/Histogram.java BTrace系列 BTrace实现原理 参考 Btrace入门到熟练小工完全指南 动态追踪技术漫谈 后端技术杂谈 btrace一些你不知道的事

    75430发布于 2019-03-27
  • 来自专栏索码理

    动态追踪技术之BTrace

    BTrace是什么 BTrace 是一个开源项目。旨在为 java 提供安全可靠的动态跟踪分析工具。 BTrace安装 下载链接:https://github.com/btraceio/btrace/releases , 目前最新版本为2.2.2 配置BTRACE_HOME环境变量 Path添加%BTRACE_HOME %\bin cmd命令行输入btrace --version,出现以下界面表示成功 BTrace 注解 BTrace 注解指定应该将工具放置在何处,以及应该向追踪操作提供哪些数据。 语法:btrace [-p <port>] [-cp <classpath>] <pid> <btrace-script> [<args>] 「port」是 BTrace 代理监听的端口,可选参数。 classpath 是 BTrace 在编译期间搜索类的目录和 jar文件的集合。默认为“.” 「pid」是被追踪的 Java 程序的进程ID 「btrace-script」是btrace脚本程序。

    1.1K20编辑于 2022-12-28
  • 来自专栏古时的风筝

    BTrace : Java 线上问题排查神器

    BTrace 是什么 BTrace 是检查和解决线上的问题的杀器,BTrace 可以通过编写脚本的方式,获取程序执行过程中的一切信息,并且,注意了,不用重启服务,是的,不用重启服务。 第二步,解压 btrace-bin-1.3.9.tgz 到一个目录即可,例如 /home/fengzheng/soft/btrace , 到这一步其实就可以用了,只是执行脚本的时候需要在 btrace /soft/btrace export PATH=$PATH:$BTRACE_HOME/bin 之后执行命令 source /etc/profile ,使环境变量立即生效。 简单测试用例   btrace 最简单的语法是 btrace $pid script.java,所以需要知道要探测的 Java程序的进程id,然后编写一个探测脚本即可。 1. 编写 btrace 脚本,脚本内容简单如下: package kite; import com.sun.btrace.annotations.*; import static com.sun.btrace.BTraceUtils.Strings.strcat

    1.9K80发布于 2018-01-08
  • 来自专栏FoamValue

    如何使用 BTrace v.2.0.1

    随着 sun 公司被并入 Oracle 之后,BTrace 现状: 开源代码库 https://github.com/btraceio/btrace 命名规范 org.openjdk.btrace JDK # btrace export BTRACE_HOME="/Users/chenxinjie/Dev/btrace-2.0.1-bin" export PATH=$PATH:$BTRACE_HOME/bin 936 3052 cn.live.Application Memory.java import org.openjdk.btrace.core.annotations.BTrace; import org.openjdk.btrace.core.annotations.OnTimer -Dfile=/Users/chenxinjie/Dev/btrace-2.0.1-bin/libs/btrace-client.jar -DgroupId=org.openjdk.btrace -DartifactId /btrace-2.0.1-bin/libs/btrace-boot.jar -DgroupId=org.openjdk.btrace -DartifactId=btrace-boot -Dversion

    1.2K00发布于 2020-08-31
  • 来自专栏程序猿的大杂烩

    基于Btrace的监控调试

    btrace的github地址: https://github.com/btraceio/btrace 安装btrace: 到github上下载btrace的压缩包,我这里下载的是1.3.11版本 配置好btrace后,我们有两种方式可以运行BTrace脚本: 一是在JVisualVM中添加BTrace插件,添加classpath 二是直接使用命令行运行:btrace < pid > :install-file -Dfile=E:\BTrace\btrace-bin-1.3.11\build\btrace-boot.jar -DgroupId=com.sun.btrace -DartifactId .monitor_tuning.btrace; import com.sun.btrace.AnyType; import com.sun.btrace.BTraceUtils; import com.sun.btrace.annotations.BTracebtrace包下新建一个BTrace脚本,代码如下: package org.zero01.monitor_tuning.btrace; import com.sun.btrace.AnyType;

    1K30发布于 2020-09-23
  • 来自专栏我是攻城师

    Java程序排查问题利器之Btrace

    (一)Btrace的介绍 BTrace是Java的安全可靠的动态跟踪工具。 (二)Btrace的一些限制 由于Btrace会把脚本逻辑直接侵入到运行的代码中,所以在使用上做很多限制: 1、不能创建对象 2、不能使用数组 3、不能抛出或捕获异常 4、不能使用循环 5、不能使用synchronized (四)Btrace的安装 (1)从github上下载最新的二进制包 ,版本是1.3.10.2 wget https://github.com/btraceio/btrace/releases/download /v1.3.10.2/btrace-bin-1.3.10.2.tgz (2)解压到指定路径 (3)设置环境变量 (4)验证安装是否成功 (5)查看btrace的帮助文档 (五)Btrace使用的一个例子 (1)在使用btrace之前,我们先需要写一个简单的java程序,模拟成是线上正在跑的程序 代码比较简单,就是每隔随机的时间,随机生成两个整数,进行求和: (2)主程序已经有了,下面就需要我们写btrace

    1.7K40发布于 2018-05-14
  • 来自专栏7DGroup

    性能工具之Java调试工具BTrace入门

    答案是有,它就是Java中的神器-BTrace BTrace是什么? BTrace使用Java的Attach技术,可以让我们无缝的将我们BTrace脚本挂到JVM上,通过脚本你可以获取到任何你想拿到的数据,在侵入性和安全性都非常可靠,特别是定位线上问题的神器。 BTrace原理 BTrace是基于动态字节码修改技术(Hotswap)向目标程序的字节码注入追踪代码。 安装配置 关于BTrace的安装配置使用,此处就不再重复造轮子,网上有太多的教程。 脚本需要使用注解为 @BTrace(unsafe=true),需要修改BTrace安装目录下bin中btrace脚本将 -Dcom.sun.btrace.unsafe=false改为 -Dcom.sun.btrace.unsafe */ import com.sun.btrace.BTraceUtils; import com.sun.btrace.annotations.*; import static com.sun.btrace.BTraceUtils

    1.9K20发布于 2019-07-17
  • 来自专栏JMCui

    JVM系列十(虚拟机性能监控神器 - BTrace).

    BTrace 是什么? BTrace 快速开始 下载最新的 BTrace releases 版本:https://github.com/btraceio/btrace/releases 解压文件夹,在 <BTRACE_HOME btrace BTRACE_HOME/bin/btrace PID <trace_script> btrace 将通过 JVM Attach API 连接到 的 java 应用程序,然后把脚本绑定到应用进程 的语法,私以为平常遇到什么样的业务场景,边学边用就是了,以下是官方的一些 BTrace 资料: BTrace Github Wiki BTrace User's Guide 由于 BTrace 的安全和性能考虑 推荐阅读: Btrace入门到熟练小工完全指南 如何在生产环境使用Btrace进行调试 BTrace使用小结

    2.2K10发布于 2020-04-12
  • 来自专栏全栈程序员必看

    利用神器BTrace 追踪线上 Spring Boot应用运行时信息

    BTrace 的使用方式是用户自己编写符合 BTrace使用语法的脚本,并结合btrace命令,来获取应用的一切调用信息,就像下面这样: <btrace>/bin/btrace <PID> <trace_script 加持》一文中的 Spring Boot工程 ---- BTrace 安装部署 下载 二进制文件并解压 这里我解压到目录:/home/btrace 配置系统环境变量 vim /etc/profile BTRACE_HOME=/home/btrace export BTRACE_HOME export PATH=$PATH:$BTRACE_HOME/bin 验证 BTrace安装情况 btrace - -version ---- 编译 BTrace源码 克隆源码 git clone git@github.com:btraceio/btrace.git 编译源码 . 我们在此工程里再添加一个 scripts包,用于放置 btrace 脚本文件: 由于 btrace脚本中需要用到 btrace相关的组件和函数库,因此我们还需要在工程的 pom.xml中引入 btrace

    52620发布于 2021-07-01
  • 来自专栏Java日常

    Java调优—Btrace监控Java线程方法执行参数、执行时间(Windows)

    ,利用Btrace来监控Java程序的运行 二、安装与执行(Windows) 在windows环境下,可以直接利用jdk自带的jvisualvm工具来 安装Btrace插件,具体操作如下: 1 : package my.app.btrace; import static com.sun.btrace.BTraceUtils.*; import com.sun.btrace.annotations btrace 4552 DEMO.java >> /data/btrace/DEMO.txt 四、补充 如果想监控程序的参数什么的,换成以下代码即可: ackage my.app.btrace; ; import com.sun.btrace.annotations.BTrace; import com.sun.btrace.annotations.Kind; import com.sun.btrace.annotations.Location com.sun.btrace.annotations.ProbeMethodName; import com.sun.btrace.annotations.Return; import com.sun.btrace.annotations.Self

    1.7K20发布于 2020-12-25
  • 来自专栏Java极客技术

    BTrace 告诉你如何在不重启 JVM 的情况下在线调试

    答案当然是肯定的,下面我们就来看一下神器 BTraceBTrace 在提供解决方案之前,我们先看下什么是 BTraceBTrace 是sun公司推出的一款 Java 动态、安全追踪(监控)工具,可以在不用重启JVM 的情况下监控系统运行情况,方便的获取程序运行时的数据信息 wget https://github.com/btraceio/btrace/releases/download/v2.2.0/btrace-v2.2.0-bin.tar.gz tar xzvf btrace-v2.2.0 简单说下上面的这段代码中我们使用到的几个注解,@BTrace ,OnMethod,@Location 代表的含义: @BTrace:表示这个类是一个 BTrace 程序,BTrace 编译器会强制查找该注解 ,BTrace 代理也会检查这个是否有该注解。

    61711编辑于 2022-12-02
领券