JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Javaagent 使用 - 探针 jsp探针

wys521 2024-11-07 13:44:15 精选教程 30 ℃ 0 评论

javaagent 简介

Javaagent 主要作用在class被加载之前对其加载,插入我们需要添加的字节码。

javaagent是一个简单优雅的java agent,利用java自带的instrument特性+javassist字节码编辑技术,实现了无侵入的方法级性能监控。基于javaagent的日志,你可以使用JQL工具进行分析查询,也可以自己去写分析器,这样可以让你快速定位生产环境的性能瓶颈。

javaagent的使用

1.通过 -javaagent:xxx.jar=name=ty&age=30

我们通过-javaagent来指定我们编写的agent的jar路径及要传给agent的参数(name=ty&age=30),这样在启动的时候这个agent就可以做一些我们想要它做的事了。

javaagent 的简单实例

1. 首先编写java agent类,只需要实现premain这个方法。

public class HelloAgent {

public static void premain(String arg, Instrumentation instrumentation) {

System.err.println("装载成功 方法 premain 参数:" + arg);

}

}

2. Agent 类必须打成jar包,然后里面的META-INF/MAINIFEST.MF 必须包含Premain-Class这个属性。

下面是一个MANIFEST.MF的例子:

Manifest-Version: 1.0

Premain-Class:HelloAgent

Created-By:1.6.0_06

然后把MANIFEST.MF 加入到你的jar包中。

通过在pom.xml 文件中,引入Maven 插件。

3. 编写测试类

public class TestHelloAgent {

public static void main(String[] args) {

System.out.println("TestHelloAgent main 方法");

}

}

在测试Java 项目中,需要设置VM options 启动参数,如下所示:

-javaagent:D:\Github\java-agent-demo\helloagent\target\hello-agent-1.0-SNAPSHOT.jar=name=rickie&id=1

测试结果:

装载成功 方法 premain 参数:name=rickie&id=1

TestHelloAgent main 方法

javaagent.jar 和 普通jar区别:

javaagent 装载时序:

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表