BTrace使用总结】的更多相关文章

在生产环境中经常遇到格式各样的问题,如OOM或者莫名其妙的进程死掉.一般情况下是通过修改程序,添加打印日志:然后重新发布程序来完成.然而,这不仅麻烦,而且带来很多不可控的因素.有没有一种方式,在不修改原有运行程序的情况下获取运行时的数据信息呢?如方法参数.返回值.全局变量.堆栈信息等.Btrace就是这样一个工具,它可以在不修改原有代码的情况下动态地追踪java运行程序,通过hotswap技术,动态将跟踪字节码注入到运行类中,对运行代码侵入较小,对性能上的影响可以忽略不计. 基础说明 由于Btr…
btrace使用 目录btracee是btrace的解压目录 btrace/btrace是btrace的项目工程 root@ubuntu:/usr/local/bogon/btrace# tree btrace btrace ├── bin ├── btrace-agent.jar ├── btrace-boot.jar ├── btrace-client.jar └── src ├── btrace ├── HelloWorld.class ├── HelloWorld.java └── Tr…
一.背景        在生产环境中可能经常遇到各种问题,定位问题需要获取程序运行时的数据信息,如方法参数.返回值.全局变量.堆栈信息等.为了获取这些数据信息,我们可以 通过改写代码,增加日志信息的打印,再发布到生产环境.通过这种方式,一方面将增大定位问题的成本和周期,对于紧急问题无法做到及时响应:另一方面重新部 署后环境可能已被破坏,很难重新问题的场景. 二.BTrace功能        BTrace天生就为解决这类问题而来,它可以动态地跟踪java运行程序.通过hotswap技术,动态将跟…
bin版:https://kenai.com/projects/btrace/downloads/directory/releases 源码:https://github.com/btraceio/btrace 如果要在eclipse中编写btrace脚本文件,需要引用:btrace-bin-1.3.8.3/build/btrace-client.jar 江南白衣的一个blog写的还可以:http://calvin1978.blogcn.com/articles/btrace1.html…
让VisualVM+BTrace进入unsafe mode http://kenai.com/projects/btrace/pages/UserGuide BTrace很强大,但有很多安全限制,比如: --------------------------------------------------------------------------can not create new objects.can not create new arrays.can not throw excepti…
之前提到使用命令行的方式执行btrace监控,其实jdk提供更好的方式监控应用程序. 我们可以使用jvisualvm.exe加插件的方式监控,这样更加方便. 1.在jvisualvm.exe安装btrace插件 在这里选择Btrace 插件,由于我已经安装 ,这就就不能在选择了. 2.使用插件 在需要监控的应用邮件点击. 这样就打开了btrace插件. 在上面的框中编辑监控代码,在classpath 中加入 btrace相关的jar包,点击start就可以开始监控了. 点开始时插件会检查代码是否…
在访问页面请求的时候,如果系统执行效率低,我们怎样才能定位到这些页面请求呢?   java 有一个十分有效的动态跟踪工具-btrace 网址:https://kenai.com/projects/btrace/downloads   比如希望定位我们的控制器代码哪些方法慢:   1.我们可以编写如下类:   package demo; import com.sun.btrace.annotations.BTrace; import com.sun.btrace.annotations.Kind;…
前言: 对线上的java服务, 往往采用日志进行问题处理和分析. 倘若日志缺乏相关的信息时, 那又该如何处理? 远程调试会影响服务的正常工作, 修改代码重新部署的方案其实时性和灵活性难以保证(线上服务的流程繁琐, 问题追踪的不确定性), 有没有两全的完美方案(不影响正常服务, 又灵活/无侵入性)呢? 答案是有, 它就是人见人爱, 花见花开的神器BTrace. 那BTrace究竟是这么样的神器, 为何它只要998(啊呸..., -_-bbb). 好了, 让我们一步一步的掀起它的红盖头来. 本系列讲…
BTrace是神器,每一个需要每天解决线上问题,但完全不用BTrace的Java工程师,都是可疑的. BTrace的最大好处,是可以通过自己编写的脚本,获取应用的一切调用信息.而不需要不断地修改代码,加入System.out.println(), 然后重启,然后重启,然后重启应用!!! 同时,特别严格的约束,保证自己的消耗特别小,只要定义脚本时不作大死,直接在生产环境打开也没影响. 在网上搜索BTrace出来的文章都有点旧了,而且不够详细,于是决定,重新写一份. 码这么多的字好辛苦,请保留原文链…
btrace简介:     btrace 是一个使用在JAVA平台上面的,安全的,动态跟踪工具.它一般用于动态跟踪正在运行的jAVA程序.     使用说明在这里.下载地址在这里.     下载的时候注意版本问题,我最初下载的是release-1.2.3的版本,然后服务器上面的JAVA的版本是1.6.0_32.运行的时候报了这个错. [java] java.lang.UnsupportedClassVersionError[/java]     这是由于编译release-1.2.3的jdk版本…