线上排查

BTrace介绍和生产环境例子

拜拜、爱过 提交于 2019-12-03 05:59:43
一/简单介绍 BTrace 是一个可靠的,用来动态跟踪Java程序的工具。它通过动态对运行中的Java程序进行字节码生成来工作。BTrace会对运行中的Java程序的类插入一些跟踪操作 来对被跟踪的程序进行热替换。 BTrace 名词 探测点 (Probe Point) 就是一系列的跟踪语句被执行的“地方”或者“事件”。探测点就是我们想要执行一些跟踪语句的地方或者事件。 跟踪动作或简称动作 (Trace Actions) 就是那些当探测点被触发时所执行的跟踪语句。 动作方法 BTrace的跟踪语句是必须定义在一个类的某个静态方法里的,这个静态方法就叫“动作”方法。 BTrace 程序结构 一个BTrace程序就是一个普通的Java类,这个类至少有一个这样的方法: public static void *** 其次这个方法还需要加上BTrace相关的注解。这些注解用来指明被跟踪程序的“位置”(也就是前面提到的探测点)。跟踪动作需要在这个静态方法的方法体里指定。这些(注意,可以有多个)静态方法就是所谓的“动作”方法。 BTrace的限制 为了保证跟踪动作是“只读”的(也就是这些动作不可以修改被跟踪程序的状态)和有限度的(比如在固定时间里结束)。一个BTrace程序只允许完成一些指定的动作。下面是BTrace一些不可以完成的事情: 不能创建新的对象 不能创建新的数组 不能抛出异常