ChaosBlade对jvm的操作
ChaosBlade对jvm的操作
1. 指定 pid 执行 java agent 挂载
blade prepare jvm --pid 4082
[root@focus-1 chaosblade-0.6.0]# blade prepare jvm --pid 4082 {"code":200,"success":true,"result":"25448056eb95807a"}
2. 查看prepare
blade s --type p
[root@focus-1 chaosblade-0.6.0]# blade s --type p { "code": 200, "success": true, "result": [ { "Uid": "25448056eb95807a", "ProgramType": "jvm", "Process": "", "Port": "33962", "Pid": "4082", "Status": "Running", "Error": "", "CreateTime": "2020-09-25T10:12:57.777471691+02:00", "UpdateTime": "2020-09-25T10:13:13.104144385+02:00" } ] }
3. 卸载
[root@focus-1 chaosblade-0.6.0]# blade revoke d7b0a83e2bbd2d9c {"code":200,"success":true,"result":"success"}
4. 设置方法超时
[root@focus-1 ~]# blade c jvm delay --time 8000 --classname=<package path>.<class name> --methodname=<method name> --pid 8591 {"code":200,"success":true,"result":"c5a21a0cf59e3e60"} [root@focus-1 ~]# [root@focus-1 ~]# b s c5a21a0cf59e3e60 { "code": 200, "success": true, "result": { "Uid": "c5a21a0cf59e3e60", "Command": "jvm", "SubCommand": "delay", "Flag": " --time=8000 --classname=<package path>.<class name> --methodname=<method name> --pid=8591", "Status": "Success", "Error": "", "CreateTime": "2020-09-25T11:42:43.228286727+02:00", "UpdateTime": "2020-09-25T11:42:43.330338161+02:00" } }
5. 查看实验
[root@focus-1 ~]# b s --uid 24b44685c75b6921 { "code": 200, "success": true, "result": { "Uid": "24b44685c75b6921", "Command": "jvm", "SubCommand": "return", "Flag": " --value=chaosblade --classname=<class path> --methodname=<method name> --pid=31057", "Status": "Success", "Error": "", "CreateTime": "2020-09-27T03:41:58.751730372+02:00", "UpdateTime": "2020-09-27T03:41:58.936128755+02:00" } }
6. 修改方法返回值
[root@focus-1 ~]# blade c jvm return --value "hello chaosblade" --classname <class path> --methodname <method name> --pid 31057 {"code":200,"success":true,"result":"2bbc96df4fe29524"}