Nerf Herder
A companion service to mongod to keep long running queries from causing chaos.
Every so often config.interval
nerfHerder will poll mongo to find a list of
current operations. nerfHerder will then loop through each operation and
evaluate each rule in config.rules[]
. Each rule
is passed an operation.
The rule
can due whatever logic it wants and then return a boolean value.
true
means the nerf lives, false
means the nerf dies. If a rule returns
false
for an operation killOp
will be called to kill it.
Install
git clone git@github.com:thurmda/nerfHerder.gitnpm installnpm test
Usage
nerfHerder -d MONGO_CONNECTION_STRING -f PATH_TO_CONFIG
example
nerfHerder -d mongodb://localhost:27017/local -f test/config/config.js
config
moduleexports = "interval" : 3 * 1000 //Polling interval in miliseconds"rules" : {/* 'Print op and let it live.' */ console; return true;} {/*Kill everything over 2 secs! */ return opsecs_running < 2;}