From fdc41dcdef0cf20f589d634e5ec86c2313224094 Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Wed, 9 Jun 2021 21:38:06 +0200 Subject: [PATCH] feat: add option service to run sd in a loop (default: true) --- prometheuspvesd/cli.py | 13 +++++++++++-- prometheuspvesd/config.py | 6 ++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/prometheuspvesd/cli.py b/prometheuspvesd/cli.py index cdc279e..b00c92f 100644 --- a/prometheuspvesd/cli.py +++ b/prometheuspvesd/cli.py @@ -48,6 +48,12 @@ class PrometheusSD: action="store", help="delay between discovery runs" ) + parser.add_argument( + "--no-service", + dest="service", + action="store_false", + help="run discovery as a service" + ) parser.add_argument( "-v", dest="logging.level", action="append_const", const=-1, help="increase log level" ) @@ -90,12 +96,15 @@ class PrometheusSD: output_file = self.config.config["output_file"] self.logger.info("Writes targets to {}".format(output_file)) + self.logger.debug("Propagate from PVE") while True: - self.logger.debug("Propagate from PVE") self._write(self.discovery.propagate()) - self.logger.info("Waiting {} seconds for next loop".format(loop_delay)) + if not self.config.config["service"]: + break + + self.logger.info("Waiting {} seconds for next discovery loop".format(loop_delay)) sleep(self.config.config["loop_delay"]) def _write(self, host_list: HostList): diff --git a/prometheuspvesd/config.py b/prometheuspvesd/config.py index 88da5e4..6dd6349 100644 --- a/prometheuspvesd/config.py +++ b/prometheuspvesd/config.py @@ -61,6 +61,12 @@ class Config(): "file": True, "type": environs.Env().int }, + "service": { + "default": True, + "env": "SERVICE", + "file": True, + "type": environs.Env().bool + }, "exclude_state": { "default": [], "env": "EXCLUDE_STATE",