chaos-php/chaos-monkey

Chaos Monkey is a resiliency tool that helps PHP applications tolerate random failures

1.0.0 2021-01-28 18:53 UTC

This package is auto-updated.

Last update: 2024-03-22 18:33:46 UTC


README

Minimum PHP Version build Latest Stable Version GitHub

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:

If your framework is missing, open an issue or use this package manually:

  1. Install with composer:
    composer require chaos-php/chaos-monkey
  2. Create ChaosMonkey object
    $settings = new Settings();
    $chaosMonkey = new ChaosMonkey([
       new LatencyAssault($settings),
       new MemoryAssault($settings),
       new ExceptionAssault($settings),
       new KillAppAssault($settings)
    ], $settings);
  3. 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();
  4. Watch your app plunge into chaos 🙈🙊🙉 😈

License

ChaosMonkey is released under the MIT Licence. See the bundled LICENSE file for details.

Author

Arkadiusz Kondas