コード例 #1
0
ファイル: runner.py プロジェクト: kszucs/relay
            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),
    ]
)
コード例 #2
0
ファイル: runner.py プロジェクト: meetbill/relay
                '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),
])
コード例 #3
0
ファイル: main.py プロジェクト: prateek/relay.mesos
    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")),