@Override public ChaosMonkey build() { loadProperties(); Policy chaosPolicy = new PeriodicRandomActionPolicy(chaosEveryMilliSec, new UnbalanceKillAndRebalanceAction(waitForUnbalanceMilliSec, waitForKillMilliSec, waitAfterBalanceMilliSec)); return new PolicyBasedChaosMonkey(util, chaosPolicy); }
@Override public void start() throws Exception { monkeyThreads = new Thread[policies.length]; for (int i=0; i<policies.length; i++) { policies[i].init(new Policy.PolicyContext(this.util)); Thread monkeyThread = new Thread(policies[i]); monkeyThread.start(); monkeyThreads[i] = monkeyThread; } }
@Override public void stop(String why) { if (policies == null) { return; } for (Policy policy : policies) { policy.stop(why); } }
@Override public void setUpMonkey() throws Exception { Policy p = new PeriodicRandomActionPolicy(sleepTime, new RestartRandomRsExceptMetaAction(sleepTime), new MoveRandomRegionOfTableAction(tableName)); this.monkey = new PolicyBasedChaosMonkey(util, p); // don't start monkey right away }
@Override public ChaosMonkey build() { Policy chaosPolicy = new PeriodicRandomActionPolicy( CHAOS_EVERY_MS, new UnbalanceKillAndRebalanceAction() ); return new PolicyBasedChaosMonkey(util, chaosPolicy); }
@Override public ChaosMonkey build() { loadProperties(); Policy chaosPolicy = new PeriodicRandomActionPolicy(chaosEveryMilliSec, new UnbalanceKillAndRebalanceAction(waitForUnbalanceMilliSec, waitForKillMilliSec, waitAfterBalanceMilliSec, killMetaRs)); return new PolicyBasedChaosMonkey(util, chaosPolicy); }
@Override public void start() throws Exception { monkeyThreads = new Thread[policies.length]; for (int i=0; i<policies.length; i++) { policies[i].init(new Policy.PolicyContext(this.util)); Thread monkeyThread = new Thread(policies[i], "ChaosMonkeyThread"); monkeyThread.start(); monkeyThreads[i] = monkeyThread; } }
public PolicyBasedChaosMonkey(IntegrationTestingUtility util, Collection<Policy> policies) { this.util = util; this.policies = policies.toArray(new Policy[policies.size()]); }
/** * Construct a new ChaosMonkey * @param util the HBaseIntegrationTestingUtility already configured * @param policies custom policies to use */ public PolicyBasedChaosMonkey(IntegrationTestingUtility util, Policy... policies) { this.util = util; this.policies = policies; }