![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
混沌工程
Wendy-chunmei
感谢公司领导、同事们的支持,遇见你们是值得我高兴的事,愿你们幸福健康。
展开
-
注意事项-固定的路径
注意1:blade的部署路径,包含的文件root@iZf8zf4p0dwlnjl5c8c6w3Z:/opt/chaosblade# pwd/opt/chaosbladeroot@iZf8zf4p0dwlnjl5c8c6w3Z:/opt/chaosblade# tree.├── bin│ ├── chaos_addfile│ ├── chaos_appendfile│ ├── chaos_burncpu│ ├── chaos_burnio│ ├── chaos_bur.原创 2021-08-10 16:24:36 · 158 阅读 · 0 评论 -
(3)MySQL案例-模块关联图
所有的plugin都是按service来加载的。原创 2021-08-03 17:03:23 · 161 阅读 · 0 评论 -
(2)MySQL案例-结合应用
一:重新打包lcm.jar1.1 修改SandboxModule.java的id=lcm1.2 在CreateHandler.java里的handle里设定输出System.out.println(“lcm CreateHandler handle suid= “+suid+”,target= “+target+”,actionArg=”+actionArg);1.3 把修改并编译后的SandboxModule.class CreateHandler.class 替换掉官方提供的chaosblade原创 2021-08-06 15:42:19 · 159 阅读 · 0 评论 -
(1)MySQL案例-结合应用
结论:当向springboot-mysql应用里注入字节码增强后,应该执行查询http://localhost:8000/user/list的时候startTime和endTime是有10s时间差距的。但是结果没有10s时间的差距。一:写springboot-mysql的工程。User.java. UserMapper.java UserController.java 代码如下:package com.example.demo.entity;import lombok.AllArgsCon.原创 2021-08-06 10:11:08 · 226 阅读 · 0 评论 -
chaosblade-exec-jvm自己打jar包与官网提供jar包的区别
一:自己打jar包: chaosblade-exec-bootstrap-jvmsandbox-1.2.0.jar1.1 通过工程里的makefile进行打包。1.2 mvn clean package -Dmaven.test.skip=true 打包jar xvf chaosblade-exec-bootstrap-jvmsandbox-1.2.0.jar解压后的目录结构如下:xxMBP:guangfang xxx$ tree -L 2.├── META-INF│ ├── MANI原创 2021-08-04 16:16:22 · 313 阅读 · 0 评论 -
通过脚本把模块注入到目标jvm
一.运行的sandbox目录如下:xxxdeMBP:sandbox xxx$ tree.├── bin│ └── sandbox.sh├── cfg│ ├── sandbox-logback.xml│ ├── sandbox.properties│ └── version├── example│ └── sandbox-debug-module.jar├── install-local.sh├── lib│ ├── sandbox-agent.jar│原创 2021-08-04 15:45:48 · 320 阅读 · 0 评论 -
混沌平台页面使用流程图
原创 2021-08-03 17:09:02 · 136 阅读 · 0 评论 -
sandbox字节码增强关联图
原创 2021-08-03 17:01:18 · 90 阅读 · 0 评论 -
sandbox事件注册和运行时流程
未增强在运行sum流程时,若没有增强,则sum(10,10)=20增强后通过字节码增强,修改sum的参数为40,60.在调用sum(10,10)时,会在执行时调用字节码增强后为sum(40,60)=100原创 2021-08-03 16:53:00 · 374 阅读 · 0 评论 -
jvm-sandbox工程单独启动
CoreLauncher.java原创 2021-08-02 15:09:39 · 301 阅读 · 0 评论 -
生成chaosblade-jvm-spec-1.2.0.yaml文件内容
结论根据插件实现,生成yaml文件内容。1.把所有插件打包成jar切到chaosblade-exec-jvm/chaosblade-exec-plugin/目录下,执行mvn clean package -Dmaven.test.skip=true各插件包下会生成target/*.jar。备注:若是单个插件打包,需到各插件目录下执行上面的命令。2. 把插件jar放到统一的目录下把上面打包的插件jar放到chaosblade-exec-jvm/build/plugins/下,若是没有buil原创 2021-08-02 14:58:33 · 4496 阅读 · 0 评论 -
ServiceLoader统一加载类
结论:如标题一:上代码1.1 PayService.javapackage com.classload;public interface PayService { void pay();}1.2 AliPayService.javapackage com.classload;public class AliPayService implements PayService { @Override public void pay() { System.原创 2021-08-04 16:53:30 · 287 阅读 · 0 评论 -
使用attach方式实现类的动态修改和字节码增强
1.增强类GdAgentMain.javaimport org.objectweb.asm.ClassReader;import org.objectweb.asm.ClassVisitor;import org.objectweb.asm.ClassWriter;import org.objectweb.asm.MethodVisitor;import org.objectweb.asm.commons.AdviceAdapter;import java.lang.instrument.Cla原创 2021-07-30 15:19:16 · 744 阅读 · 1 评论 -
agent方式实现动态类修改和增强字节码
一:实际代码1.1 GdBusiness.java的内容package com.aop.transform;public class GdBusiness { public boolean deposit(){ System.out.println("存款业务执行"); return true; } public void withdrawals(){ System.out.println("取款业务执行"); }}原创 2021-07-30 16:34:13 · 437 阅读 · 0 评论 -
cgroup
cgroup介绍cgroup是control group的简称,它为Linux内核提供了一种任务聚集和划分的机制,通过一组参数集合将一些任务组织成一个或多个子系统。Cgroups是control groups的缩写,最初由Google工程师提出,后来编进linux内核。Cgroups是实现IaaS虚拟化(kvm、lxc等),PaaS容器沙箱(Docker等)的资源管理控制部分的底层基础。子系统是根据cgroup对任务的划分功能将任务按照一种指定的属性划分成的一个组,主要用来实现资源的控制。在cgro转载 2021-07-15 18:03:01 · 181 阅读 · 0 评论 -
各种aop的记录
spring 的aop注入切片的类必须是要声明为bean.原生接口aopattachagentcglibjavassistasm原创 2021-08-04 18:21:28 · 103 阅读 · 0 评论 -
Prometheus安装在mac
Prometheus到官网下载并解压https://prometheus.io/download/解压tar -vxf prometheus-2.28.1.darwin-amd64.tar启动./prometheus --config.file=prometheus.yml访问 http://localhost:9090/原创 2021-07-09 15:18:22 · 286 阅读 · 0 评论 -
查看字节码
1.安装插件ASM Bytecode outline 与hexview2.查看字节码源码package com.asm;public class HelloWorld{ public static void main(){ System.out.println("HelloWorld!-----0"); }}当前面板下有三项内容:• Bytecode 表示对应的class字节码文件• ASMified 表示利用ASM框架生成字节码对应的代码• Gr原创 2021-07-20 12:30:05 · 376 阅读 · 0 评论 -
混沌工具的文档
工具的文档:https://chaosblade-io.gitbook.io/chaosblade-help-zh-cn/原创 2021-08-06 11:30:41 · 138 阅读 · 0 评论