Skip to main content
版本:1.7.4

挂载 Java Agent

介绍

挂载 java agent,执行 java 实验场景必要步骤

参数

-j, --javaHome string   指定 JAVA_HOME 路径,用于指定 java bin 和 tools.jar,如果不添加此参数,默认会优先获取 JAVA_HOME 环境变量,如果获取失败,会解析指定进程参数获取 JAVA_HOME,获取失败,会使用 chaosblade 自带的 tools.jar
--pid string java 进程ID
-P, --port int java agent 暴露服务的本地端口,用于下发实验命令
-p, --process string java 进程关键词,用于定位 java 进程
-d, --debug 开启 debug 模式

案例

指定 pid 执行 java agent 挂载

blade prepare jvm --pid 26652
# 命令也可简写为
blade p jvm --pid 26652

执行成功,会返回实验准备的 UID,例如:

{"code":200,"success":true,"result":"2552c05c6066dde5"}

2552c05c6066dde5 就是实验准备对象的 UID,执行卸载操作需要用到此 UID,例如

blade revoke 2552c05c6066dde5
# 命令也可简写为
blade r 2552c05c6066dde5

如果 UID 忘记,可通过以下命令查询

blade status --type prepare --target jvm
# 命令也可简写为:
blade s --type p --target jvm

挂载 java agent 操作是个比较耗时的过程,在未返回结果前请耐心等待

实现原理

常见问题

Q: {"code":500,"success":false,"error":"cannot get port from local, please execute prepare command first"}
A: 没有挂载所需的 java agent,执行 prepare jvm 命令挂载

Q: {"code":602,"success":false,"error":"less --process or --pid flags"}
A: 缺少必要参数用于指定 java 应用进程