chaos-php / chaos-monkey
Chaos Monkey is a resiliency tool that helps PHP applications tolerate random failures
Installs: 1 696
Dependents: 1
Suggesters: 0
Security: 0
Stars: 25
Watchers: 4
Forks: 2
Open Issues: 0
Requires
- php: ^8.1
- akondas/php-runtime: ^1.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.27
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^9.5
- symfony/browser-kit: ^5.2
- symfony/framework-bundle: ^5.2
- symfony/stopwatch: ^5.2
This package is auto-updated.
Last update: 2024-10-31 00:17:56 UTC
README
Chaos Monkey for PHP applications. Try to attack your running PHP App.
Assaults
- 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()
How to use
The best experience you can get is using ready-made integrations:
- Symfony: ChaosMonkeySymfonyBundle
- Laravel: ChaosMonkeyLaravelPackage (in progress)
If your framework is missing, open an issue or use this package manually:
- Install with composer:
composer require chaos-php/chaos-monkey
- Create
ChaosMonkey
object$settings = new Settings(); $chaosMonkey = new ChaosMonkey([ new LatencyAssault($settings), new MemoryAssault($settings), new ExceptionAssault($settings), new KillAppAssault($settings) ], $settings);
- Configure settings and trigger chaos monkey in the working place of the application:
$settings->setExceptionActive(true); $settings->setExceptionClass(\RuntimeException::class); $settings->setProbability(100); $settings->setEnabled(true); $chaosMonkey->call();
- Watch your app plunge into chaos 🙈🙊🙉 😈
License
ChaosMonkey is released under the MIT Licence. See the bundled LICENSE file for details.