Chaos Monkey for Symfony applications. Try to attack your running Symfony App.
- Latency Assault - adds a delay randomly from the range (min and max)
- Exception Assault - throws given exception class
- Memory Assault - fill memory until target fraction (95% for example)
- Kill Assault - no mercy, plain
exit()
- Request - attack http request
- Repository (not implemented)
- Service (not implemented)
- "Query param" - attack only if given query param is present (default
chaos
)
- Install with composer:
composer require chaos-php/chaos-monkey-symfony-bundle
- Add Symfony bundle (e.g.
config/bundles.php
):return [ //... other bundles Chaos\Monkey\Symfony\ChaosMonkeyBundle::class => ['all' => true], ];
- Add
chaos_monkey.yaml
configuration (copy from below) and enable assaults - Watch your app plunge into chaos 🙈🙊🙉 😈
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 recipe
- Metrics (for example
chaos_monkey_request_count_assaulted
) - Assault profiles - each profile can contain different assaults
- CustomWatcher (based on container tag)
- CustomAssault (not implemented)
ChaosMonkeySymfonyBundle is released under the MIT Licence. See the bundled LICENSE file for details.
Arkadiusz Kondas (@ArkadiuszKondas)