chaos-php/chaos-monkey-symfony-bundle

Symfony应用的Chaos Monkey

1.0.0 2024-06-02 08:14 UTC

This package is auto-updated.

Last update: 2024-09-02 09:15:20 UTC


README

Minimum PHP Version Symfony Versions Supported Packagist Version ci GitHub

Symfony应用的Chaos Monkey。尝试攻击你正在运行的Symfony应用。

攻击

  • 延迟攻击 - 在(min和max)范围内随机添加延迟
  • 异常攻击 - 抛出指定的异常类
  • 内存攻击 - 填充内存直到目标分数(例如95%)
  • 终止攻击 - 不留情面,直接exit()

关注者

  • 请求 - 攻击HTTP请求
  • 仓库(未实现)
  • 服务(未实现)

激活器

  • "查询参数" - 只有当给定的查询参数存在时才攻击(默认chaos

Symfony

如何使用

  1. 使用composer安装
    composer require chaos-php/chaos-monkey-symfony-bundle
  2. 添加Symfony包(例如 config/bundles.php
    return [
        //... other bundles
        Chaos\Monkey\Symfony\ChaosMonkeyBundle::class => ['all' => true],
    ];
  3. 添加 chaos_monkey.yaml 配置(从下面复制)并启用攻击
  4. 看着你的应用陷入混乱 🙈🙊🙉 😈

配置参考

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)