注意1:blade的部署路径,包含的文件
[email protected]:/opt/chaosblade# pwd
/opt/chaosblade
[email protected]:/opt/chaosblade# tree
.
├── bin
│ ├── chaos_addfile
│ ├── chaos_appendfile
│ ├── chaos_burncpu
│ ├── chaos_burnio
│ ├── chaos_burnmem
│ ├── chaos_changedns
│ ├── chaos_chmodfile
│ ├── chaos_deletefile
│ ├── chaos_dropnetwork
│ ├── chaos_filldisk
│ ├── chaos_fuse
│ ├── chaos_killprocess
│ ├── chaos_movefile
│ ├── chaos_occupynetwork
│ ├── chaos_os
│ ├── chaos_stopprocess
│ ├── chaos_stracedelay
│ ├── chaos_straceerror
│ ├── chaos_tcnetwork
│ └── strace
├── blade
├── chaosblade.dat
├── lib
│ ├── cplus
│ │ ├── chaosblade-exec-cplus
│ │ └── script
│ │ ├── shell_break_and_return_attach.sh
│ │ ├── shell_break_and_return.sh
│ │ ├── shell_check_process_duplicate.sh
│ │ ├── shell_check_process_id.sh
│ │ ├── shell_initialization.sh
│ │ ├── shell_modify_variable_attach.sh
│ │ ├── shell_modify_variable.sh
│ │ ├── shell_remove_process.sh
│ │ ├── shell_response_delay_attach.sh
│ │ └── shell_response_delay.sh
│ └── sandbox
│ ├── bin
│ │ └── sandbox.sh
│ ├── cfg
│ │ ├── sandbox-logback.xml
│ │ ├── sandbox.properties
│ │ └── version
│ ├── example
│ │ └── sandbox-debug-module.jar
│ ├── install-local.sh
│ ├── lib
│ │ ├── sandbox-agent.jar
│ │ ├── sandbox-core.jar
│ │ └── sandbox-spy.jar
│ ├── module
│ │ ├── chaosblade-java-agent-1.2.0.jar
│ │ └── sandbox-mgr-module.jar
│ ├── provider
│ │ └── sandbox-mgr-provider.jar
│ ├── sandbox-module
│ └── tools.jar
├── logs
│ ├── chaosblade.log
│ └── chaos_burnio.log
└── yaml
├── chaosblade-check-spec-1.2.0.yaml
├── chaosblade-cplus-spec.yaml
├── chaosblade-docker-spec-1.2.0.yaml
├── chaosblade-jvm-spec-1.2.0.yaml
├── chaosblade-k8s-spec-1.2.0.yaml
└── chaosblade-os-spec-1.2.0.yaml
14 directories, 54 files
注意2:源码chaosblade-exec-jvm里的插件
plugins/插件.jar,具体的打包路径请参照"(2)MySQL案例-结合应用"这篇文章。
注意3:源码blade里写了module的路径 DefaultUri
在blade和jvm-sandbox,chaosblade-exec-jvm 必须放在同一台机器上,并且按固定目录来放。在代码里写死了路径。
blade/jvm/executor.go里的
const DefaultUri = “sandbox/default/module/http/chaosblade”
func (e *Executor) sandboxUrl(port, requestPath string) string {
return fmt.Sprintf(“http://%s:%s/%s/%s”, “127.0.0.1”, port, DefaultUri, requestPath)
}
//也就是说,所有的插件都只能是写在chaosblade-exec-jvm的plugins里,因为这里的模块id是固定的chaosblade。