- 浏览: 422807 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (216)
- JAVA (136)
- Python (7)
- 娱乐生活 (10)
- Cloud (5)
- Linux (9)
- JavaScript (7)
- Oracle (11)
- Groovy (1)
- Mysql (3)
- NoSQL (4)
- tomcat (6)
- apache/nginx (16)
- C/C++ (5)
- 设计模式 (7)
- 架构 (8)
- openstack (1)
- hadoop (2)
- 数据仓库 (7)
- linkedin (17)
- JavaGeeker (54)
- Google (9)
- opensource (44)
- spring (21)
- Performance (39)
- lua (2)
- Rust (1)
- WASM (0)
- Golang (0)
- Microservice (1)
- Blockchain (0)
- Web3 (0)
- 边缘计算 (0)
- 硅谷 (0)
- 密码学 (0)
- BTC (0)
- Ethereum (0)
最新评论
-
u012916287:
请问大神。这个架构是你们公司的产品吗?最近准备搞一个基于spr ...
基于DDD的微服务架构设计 -
铁柱他哥:
能给我一份源码码,我这儿边出了点儿问题我参考一下
Jersey采用JSP模板 -
hch2012:
大神,膜拜! ...
基于DDD的微服务架构设计 -
cywhoyi:
lionld23 写道等着看呢,速度速度我是抽空再写的,整篇文 ...
从demo到支持高并发 -
lionld23:
等着看呢,速度速度
从demo到支持高并发
btrace是很好跟踪线上环境出现异常且棘手的问题,但是在配置环境变量之后,按照前辈们所说不需要编译,
直接btrace jps 脚本文件就可以,但是我下载current版本之后,但是我在执行过程中,却并未打印出来(有时候可以)
但是我采用编译后的class,是可以的,这个都无妨。那就简单展示效果吧!package com.tonghuashun.btrace.course01.chenyang;
public class KPIApp { /** * @param args */ public static void main(String[] args) throws Exception { int i = 1; while (true) { Thread.sleep(2000); CalcKPI kpi = new CalcKPI(); i++; kpi.calc(i + "%"); } } }
package com.tonghuashun.btrace.course01.chenyang;
public class CalcKPI { public String calc(String kpi) throws Exception { System.out.println("KPI :" + kpi); return "KPI :" + kpi; } }
package com.tonghuashun.btrace.course01.chenyang;
import com.sun.btrace.annotations.*; import static com.sun.btrace.BTraceUtils.*; /** * This script demonstrates the possibility to intercept method calls that are * about to be executed from the body of a certain method. This is achieved by * using the {@linkplain Kind#CALL} location value. */ // 在CalcKPI累中调用任何的方法体内,所执行的方法 @BTrace public class AllCalls1 { @OnMethod(clazz = "com.tonghuashun.btrace.course01.chenyang.CalcKPI", method = "/.*/", location = @Location(value = Kind.CALL, clazz = "/.*/", method = "/.*/")) public static void m(@Self Object self, @TargetMethodOrField String method, @ProbeMethodName String probeMethod) { // all calls to the methods // with signature "()" println(Strings.strcat(method, Strings.strcat(" in ", probeMethod))); } }package com.tonghuashun.btrace.course01;
import static com.sun.btrace.BTraceUtils.println; import static com.sun.btrace.BTraceUtils.str; import static com.sun.btrace.BTraceUtils.strcat; import com.sun.btrace.annotations.BTrace; import com.sun.btrace.annotations.Kind; import com.sun.btrace.annotations.Location; import com.sun.btrace.annotations.OnMethod; import com.sun.btrace.annotations.OnTimer; import com.sun.btrace.annotations.ProbeClassName; import com.sun.btrace.annotations.Return; import com.sun.btrace.annotations.Self; @BTrace public class TraceMethodArgsAndReturn { @OnMethod( clazz = "com.tonghuashun.btrace.course01.CaseObject", method = "execute", location = @Location(Kind.RETURN) ) public static void traceExecute(@Self CaseObject instance, int sleepTime, @Return String result, @ProbeClassName String className) { println("call CaseObject.execute"); println(strcat("sleepTime is:", str(sleepTime))); println(strcat("return value is:", str(result))); println(strcat("CLASSNAME is:", str(className))); // BTraceUtils.print("return value is:" + result); // // println(strcat("sleepTotalTime is:", // str(get(field("CaseObject", "sleepTotalTime"), instance)))); // // println(strcat("return value is:", str(result))); } @OnTimer(value = 4000) public static void print() { } }
发表评论
-
支持MapDB的Eventstore
2017-04-11 18:15 1539背景:现在微服务大行其道,虽然微服务开山鼻祖是不建议在微服 ... -
类文件结构解析
2017-03-30 15:39 2093就很好奇反编译出来自己写的代码,这里主要使用了五个工具,i ... -
使用Spring-Cloud搭建微服务架构
2017-02-16 14:00 6081搭建一套微服务架构的,我个人觉得必须如下模块: con ... -
电路熔断器(Circuit Breaker)自我思考
2017-01-07 21:20 2162作者:美团点评技术团 ... -
DDD分布式架构设计的BASE一致性
2016-08-09 16:32 2482问题背景: 在DDD的架构设计中最难以解决的 ... -
支持分布式的callback
2016-08-03 13:10 1130项目背景: 之前在某次培训的分享中,谈到r ... -
使用netty完成proxy-server
2016-06-13 16:34 0项目背景: 现在主流的android与back ... -
从demo到支持高并发
2016-02-25 18:16 3461前言: Java语言作用很大,因有众多分门杂类的 ... -
Vert.x3支持JWT
2015-12-28 20:48 3391知识背景: ... -
MapDB的spring整合使用
2015-12-15 23:26 5094MapDB是一个快速、易用 ... -
MapDB与Spring整合使用
2015-12-14 22:58 27MapDB是一个快速、易 ... -
MapDB与Spring整合使用
2015-12-14 22:56 2MapDB是一个快速、易用的嵌入式Java数据库引擎,它提 ... -
MapDB与Spring整合使用
2015-12-14 22:55 2MapDB是一个快速、易用的嵌入式Java数据库引擎,它提 ... -
基于Spring支持JMX
2015-11-08 00:43 3304前言: 基于Vert写的组件,其中在使用过程 ... -
Vertx与Spring配合完成DML操作
2015-10-29 14:26 11250前言 vertx相较于Tomcat不同之处 引用osc ... -
基于Netty4网站架构
2015-10-28 10:44 11832前言: 本人所在公司在业内比较知名的公司, ... -
异常处理
2015-10-08 16:12 2791首先提倡下Hibernate的验证器,功能强大且使用方面,H ... -
依托于Spring重加载
2015-10-05 22:13 1111这几天发现单位同事都在使用JRebel作为热部署工具,它集合 ... -
绑定请求
2015-10-03 10:01 602public abstract class ThreadC ... -
服务端校验
2015-09-29 17:47 0现在Javer总是提框架来框架去,其实我挺讨厌这类人的,当然我 ...
相关推荐
3. **运行Btrace**:使用`btrace`命令启动Btrace,并指定要监控的Java进程ID以及脚本文件。 4. **查看结果**:Btrace 将在控制台输出监控数据,也可以选择将结果输出到文件或通过网络发送到其他工具进行进一步分析...
Java软件生产监控工具Btrace使用方法详解 Btrace是Sun公司推出的Java动态、安全追踪(监控)工具,可以在不需要重启的情况下监控系统运行情况,方便地获取程序运行时的数据信息,如方法参数、返回值、全局变量和...
在实际使用中,我们需要将BTrace工具部署到JVM上,通过指定应用的JAR或类路径来启动BTrace。执行BTrace命令时,需要提供监控脚本(如MorganTraceTest.java)和目标应用程序的PID。一旦BTrace运行起来,它就会开始...
2. **脚本编写**:BTrace使用一种简单的脚本语言,基于Groovy,开发者可以编写脚本来定义想要追踪的行为。例如,可以追踪方法调用、记录日志、计算性能指标等。 3. **安全机制**:BTrace有内置的安全策略,以防止不...
BTrace 使用Java Agent技术,通过字节码注入来跟踪和收集应用中的各种信息,如方法调用、对象创建等。在这个自我学习测试代码中,我们主要关注了如何监控`List`对象参数和自定义对象的参数。 1. **BTrace 的基本...
BTrace 使用 Java Agent 技术,它可以在不改变原有代码的情况下,利用 JVMTI(Java Virtual Machine Tool Interface)接口向运行中的 JVM 注入字节码。BTrace 提供了一种声明式的脚本语言,用户可以编写简单的脚本来...
4. **安全性**:由于 Btrace 使用 Java 代理机制,只有具备权限的用户才能启用监控,增加了系统的安全性。 5. **可扩展性**:Btrace 支持与其他监控工具集成,例如日志记录框架、告警系统等,可以轻松地扩展其功能。...
2. **BTrace Scripts**:BTrace使用一种简单的脚本语言,让开发者能够编写诊断脚本。这些脚本定义了要在目标应用中执行的操作,如记录方法调用、计时器、内存使用情况等。BTrace脚本语言具有丰富的内置函数和变量,...
### BTrace使用步骤 1. **安装与配置**:下载BTrace并将其添加到系统路径,确保JDK也在系统路径中。 2. **编写BScript**:使用BTrace特有的BScript语言编写探查脚本,定义需要追踪的行为和数据。 3. **创建Java ...
2. **安全性**:BTrace使用JDK的动态代理机制,确保只在安全的点插入探查代码,避免引发运行时错误或性能下降。 3. **实时性能分析**:通过BTrace,你可以实时查看方法调用的时间、对象创建频率、内存分配情况等,...
BTrace使用这个API获取`Instrumentation`实例,进而利用ASM生成的字节码对目标类进行改造。例如,BTrace可以通过`retransformClasses`方法在运行时对已经加载的类进行重新转换,添加监控代码。 4. **Java Compiler ...
1. **编写脚本**:Btrace使用一种基于Groovy的脚本语言,你可以通过学习官方提供的samples来快速上手。这些脚本通常包含探查点(probe),在特定的代码行或方法执行时被触发。 2. **查找Java进程**:使用`jps`命令...
BCEL (Byte Code Engineering Library) 是一个用于处理 Java 字节码的库,BTrace 在注入探针时可能使用了 BCEL 来生成和操作字节码。BCEL 提供了工具来解析、创建、修改和打印 Java 类文件。 7. **使用场景**: -...
- **自定义脚本**:BTrace使用一种基于Java的脚本语言,允许开发者编写简单的脚本来定义想要追踪的行为,例如记录特定方法的执行时间、参数和返回值。 - **安全无侵入**:BTrace遵循最小权限原则,仅对指定的方法...
**BTrace监控远程服务器使用实例** BTrace 是一个强大的、安全的、动态的Java应用程序诊断工具,它允许开发者在运行时对Java应用进行细粒度的监控和性能分析。BTrace利用了Java的动态代理机制(Java Agent)和ASM...
由于BTrace使用的是字节码级别的修改,因此它能够在运行时实现对Java应用程序的监控,而无需重启服务。 **安装配置和注意事项** 安装BTrace通常只需下载官方仓库(https://github.com/btraceio/btrace)提供的版本...
7. **使用BTrace**:现在你可以使用BTrace进行性能调优了。选择你的目标Java进程,点击“BTrace”选项,编写或导入BTrace脚本,然后应用到进程中。BTrace脚本可以让你在运行时动态地添加代码,以观察类的方法调用、...
【标题】:“btrace支持jdk1.7 linux下使用” 【描述】:“btrace支持jdk1.7 linux下使用 非常好用哦 呵呵呵呵” 【知识点详解】 BTrace(全称:Bytecode Tracing for Java)是一款强大的动态追踪工具,专为Java...