def main(): opts = parse_args() logging.basicConfig(format="%(levelname)s: %(message)s") if opts.print_header: rc = print_header(opts) sys.exit(rc) gstate = dish_common.GlobalState(target=opts.target) try: next_loop = time.monotonic() while True: rc = loop_body(opts, gstate) if opts.loop_interval > 0.0: now = time.monotonic() next_loop = max(next_loop + opts.loop_interval, now) time.sleep(next_loop - now) else: break finally: gstate.shutdown() sys.exit(rc)
def main(): opts = parse_args() logging.basicConfig(format="%(levelname)s: %(message)s") gstate = dish_common.GlobalState() gstate.points = [] gstate.deferred_points = [] gstate.timebase_synced = opts.skip_query gstate.start_timestamp = None gstate.start_counter = None if "verify_ssl" in opts.icargs and not opts.icargs["verify_ssl"]: # user has explicitly said be insecure, so don't warn about it warnings.filterwarnings("ignore", message="Unverified HTTPS request") signal.signal(signal.SIGTERM, handle_sigterm) if 'token' in opts.icargs: from influxdb_client import InfluxDBClient from influxdb_client.client.write_api import SYNCHRONOUS else: from influxdb import InfluxDBClient try: # attempt to hack around breakage between influxdb-python client and 2.0 server: gstate.influx_client = InfluxDBClient(**opts.icargs, headers={ "Accept": "application/json" }) except TypeError: # ...unless influxdb-python package version is too old gstate.influx_client = InfluxDBClient(**opts.icargs) try: next_loop = time.monotonic() while True: rc = loop_body(opts, gstate) if opts.loop_interval > 0.0: now = time.monotonic() next_loop = max(next_loop + opts.loop_interval, now) time.sleep(next_loop - now) else: break except Terminated: pass finally: if gstate.points: rc = flush_points(opts, gstate) gstate.influx_client.close() gstate.shutdown() sys.exit(rc)
def main(): opts = parse_args() logging.basicConfig(format="%(levelname)s: %(message)s") gstate = dish_common.GlobalState(target=opts.target) gstate.points = [] gstate.deferred_points = [] signal.signal(signal.SIGTERM, handle_sigterm) gstate.sql_conn = sqlite3.connect(opts.database) rc = 0 try: rc = ensure_schema(opts, gstate.sql_conn, gstate.context) if rc: sys.exit(rc) next_loop = time.monotonic() while True: rc = loop_body(opts, gstate) if opts.loop_interval > 0.0: now = time.monotonic() next_loop = max(next_loop + opts.loop_interval, now) time.sleep(next_loop - now) else: break except sqlite3.Error as e: logging.error("Database error: %s", e) rc = 1 except Terminated: pass finally: gstate.sql_conn.close() gstate.shutdown() sys.exit(rc)