errdata = errhist.send(err) weight = calc_weight(errdata) MV = int(round(err - weight * sum(errdata) / len(errdata))) log.info("data", extra=dict(data=[err, weight, sum(errdata) / len(errdata)])) if MV > 0: if ns.warmer: log.debug("adding heat", extra=dict(MV=MV, err=err)) threading.Thread(target=ns.warmer, args=(MV,)).start() else: log.warn("too cold") elif MV < 0: if ns.cooler: log.debug("removing heat", extra=dict(MV=MV, err=err)) threading.Thread(target=ns.cooler, args=(MV,)).start() else: log.warn("too hot") else: log.debug("stabilized PV at setpoint", extra=dict(MV=MV, PV=PV, SP=SP)) time.sleep(ns.delay) evaluate_stop_condition(list(errdata), ns.stop_condition) build_arg_parser = at.build_arg_parser( [ at.group("What is Relay optimizing?", at.metric, at.target), at.group("Instruct Relay how to heat or cool your metric", at.warmer, at.cooler), at.group("Some optional Relay parameters", at.delay, at.lookback, at.ramp, at.sendstats, at.stop_condition), ] )
'data', extra=dict(data=[err, weight, sum(errdata) / len(errdata)])) if MV > 0: if ns.warmer: log.debug('adding heat', extra=dict(MV=MV, err=err)) threading.Thread(target=ns.warmer, args=(MV, )).start() else: log.warn('too cold') elif MV < 0: if ns.cooler: log.debug('removing heat', extra=dict(MV=MV, err=err)) threading.Thread(target=ns.cooler, args=(MV, )).start() else: log.warn('too hot') else: log.debug('stabilized PV at setpoint', extra=dict(MV=MV, PV=PV, SP=SP)) time.sleep(ns.delay) evaluate_stop_condition(list(errdata), ns.stop_condition) build_arg_parser = at.build_arg_parser([ at.group("What is Relay optimizing?", at.metric, at.target), at.group("Instruct Relay how to heat or cool your metric", at.warmer, at.cooler), at.group("Some optional Relay parameters", at.delay, at.lookback, at.ramp, at.sendstats, at.stop_condition), ])
sys.exit(status) # This add_argument func will prefix env vars with RELAY_MESOS. # The normal at.add_argument func prefixes env vars with RELAY_ # Let's use the at.add_argument func for --mesos_XXX and the below for --XXX add_argument = at.add_argument_default_from_env_factory( env_prefix='RELAY_MESOS_') build_arg_parser = at.build_arg_parser([ at.group( "How does Relay.mesos affect your metric?", at.warmer(type=str, help=( "A bash command to run on a mesos slave." " A warmer should eventually increase metric values.")), at.cooler(type=str, help=( "A bash command to run on a mesos slave." " A cooler should eventually decrease metric values.")), ), at.group( "Relay.Mesos parameters", at.add_argument( '--mesos_master', help="URI to mesos master. We support whatever mesos supports" ), at.add_argument( '--mesos_framework_principal', type=str, help=( "If you use Mesos Framework Rate Limiting, this framework's" " principal identifies which rate limiting policy to apply")),