chaos-php / chaos-monkey-symfony-bundle
Symfony应用的Chaos Monkey
1.0.0
2024-06-02 08:14 UTC
Requires
- php: ^8.1
- chaos-php/chaos-monkey: ^1.1.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.58
- phpstan/phpstan: ^1.11
- phpstan/phpstan-symfony: ^1.4
- phpunit/phpunit: ^10.5
- symfony/browser-kit: ^6.4 || ^7.0
- symfony/framework-bundle: ^6.4 || ^7.0
- symfony/http-kernel: ^6.4 || ^7.0
- symfony/runtime: ^6.4 || ^7.0
- symfony/stopwatch: ^6.4 || ^7.0
README
Symfony应用的Chaos Monkey。尝试攻击你正在运行的Symfony应用。
攻击
- 延迟攻击 - 在(min和max)范围内随机添加延迟
- 异常攻击 - 抛出指定的异常类
- 内存攻击 - 填充内存直到目标分数(例如95%)
- 终止攻击 - 不留情面,直接
exit()
关注者
- 请求 - 攻击HTTP请求
- 仓库(未实现)
- 服务(未实现)
激活器
- "查询参数" - 只有当给定的查询参数存在时才攻击(默认
chaos
)
Symfony
如何使用
- 使用composer安装
composer require chaos-php/chaos-monkey-symfony-bundle
- 添加Symfony包(例如
config/bundles.php
)return [ //... other bundles Chaos\Monkey\Symfony\ChaosMonkeyBundle::class => ['all' => true], ];
- 添加
chaos_monkey.yaml
配置(从下面复制)并启用攻击 - 看着你的应用陷入混乱 🙈🙊🙉 😈
配置参考
chaos_monkey: enabled: false probability: 20 # percentage probability of attack (100 - everyone, 0 - none) assaults: latency: active: false minimum: 1000 # in miliseconds maximum: 3000 # in miliseconds memory: active: false fill_fraction: 0.95 # percentage of memory filling exception: active: false class: 'RuntimeException' kill_app: active: false watchers: # currently watchers can be enabled/disabled only in container compile time request: enabled: true priority: 0 activators: query_param: false # if true then chaos monkey will be called only if given query param exist (with any value) query_param_name: 'chaos'
路线图
- Flex配方
- 指标(例如
chaos_monkey_request_count_assaulted
) - 攻击配置文件 - 每个配置文件可以包含不同的攻击
- 自定义观察者(基于容器标签)
- 自定义攻击(未实现)
许可
ChaosMonkeySymfonyBundle是在MIT许可证下发布的。有关详细信息,请参阅包含的LICENSE文件。
作者
Arkadiusz Kondas (@ArkadiuszKondas)