def __init__(self, settings): """Create a BigGraphiteDatabase.""" try: super(BigGraphiteDatabase, self).__init__(settings) except TypeError: # For backward compatibility with 1.0. super(BigGraphiteDatabase, self).__init__() self._cache = None self._accessor = None self._tagdb = None self._settings = settings self._metricsToCreate = queue.Queue() self._sync_countdown = 0 self._sync_every_n_writes = settings.get("BG_SYNC_EVERY_N_WRITES", self._SYNC_EVERY_N_WRITES) self._creation_rate_limit = settings.get("BG_CREATION_RATE_LIMIT", self._CREATION_RATE_LIMIT) # We want the metadata to be enabled when the file doesn't exists watcher = utils.FileWatcher(self._DISABLE_METADATA_FILENAME) self.metadata_switch = utils.FeatureSwitch(watcher, True) utils.start_admin(bg_settings.settings_from_confattr(settings)) self.reactor.addSystemEventTrigger("before", "shutdown", self._flush) self.reactor.callInThread(self._createMetrics) self._lc = task.LoopingCall(self._background) self._lc.start(settings["CARBON_METRIC_INTERVAL"], now=False)
def __init__(self, settings): self._cache = None self._accessor = None self._settings = settings self._metricsToCreate = Queue.Queue() self._sync_countdown = 0 utils.start_admin(utils.settings_from_confattr(settings)) self.reactor.addSystemEventTrigger('before', 'shutdown', self._flush) self.reactor.callInThread(self._createMetrics) self._lc = task.LoopingCall(self._background) self._lc.start(settings['CARBON_METRIC_INTERVAL'], now=False)
def run(self, accessor, opts): """Run the command.""" # Import only here so that if the optional `gourde` dep # is missing we can still import the file. from biggraphite.cli.web import app # TODO: accessor.connect() could be called asynchronously later. accessor.connect() webapp = app.WebApp() utils.start_admin(settings.settings_from_args(opts)) webapp.initialize_app(accessor, opts) if not opts.dry_run: webapp.run()
def __init__(self, settings): """Create a BigGraphiteDatabase.""" try: super(BigGraphiteDatabase, self).__init__(settings) except TypeError: # For backward compatibility with 1.0. super(BigGraphiteDatabase, self).__init__() self._cache = None self._accessor = None self._tagdb = None self._settings = settings self._metricsToCreate = queue.Queue() self._sync_countdown = 0 utils.start_admin(utils.settings_from_confattr(settings)) self.reactor.addSystemEventTrigger('before', 'shutdown', self._flush) self.reactor.callInThread(self._createMetrics) self._lc = task.LoopingCall(self._background) self._lc.start(settings['CARBON_METRIC_INTERVAL'], now=False)
def __init__(self, settings): """Create a BigGraphiteDatabase.""" try: super(BigGraphiteDatabase, self).__init__(settings) except TypeError: # For backward compatibility with 1.0. super(BigGraphiteDatabase, self).__init__() self._cache = None self._accessor = None self._tagdb = None self._settings = settings self._metricsToCreate = queue.Queue() self._sync_countdown = 0 self._sync_every_n_writes = settings.get("BG_SYNC_EVERY_N_WRITES", self._SYNC_EVERY_N_WRITES) utils.start_admin(bg_settings.settings_from_confattr(settings)) self.reactor.addSystemEventTrigger("before", "shutdown", self._flush) self.reactor.callInThread(self._createMetrics) self._lc = task.LoopingCall(self._background) self._lc.start(settings["CARBON_METRIC_INTERVAL"], now=False)
def run(self, accessor, opts): """Run clean and repair at a given frequency. See command.BaseCommand """ workers = { "repair": { "name": "repair", "fn": lambda x: self._run_repair(x, accessor, opts), "output": collections.deque(maxlen=4096), "status": "", "thread": None }, "clean": { "name": "clean", "fn": lambda x: self._run_clean(x, accessor, opts), "output": collections.deque(maxlen=4096), "status": "", "thread": None }, } _init_logger(workers) accessor.connect() # start prometheus server utils.start_admin(utils.settings_from_args(opts)) # Spawn workers for worker in workers.values(): logging.info("starting %s worker" % worker["name"]) th = threading.Thread(name=worker["name"], target=worker["fn"], args=(worker, )) th.daemon = True th.start() worker["thread"] = th _run_webserver(workers, accessor, opts)
def __init__(self, settings): """Create a BigGraphiteDatabase.""" try: super(BigGraphiteDatabase, self).__init__(settings) except TypeError: # For backward compatibility with 1.0. super(BigGraphiteDatabase, self).__init__() self._cache = None self._accessor = None self._tagdb = None self._settings = settings self._metricsToCreate = queue.Queue() self._sync_countdown = 0 self._sync_every_n_writes = settings.get( "BG_SYNC_EVERY_N_WRITES", self._SYNC_EVERY_N_WRITES ) utils.start_admin(bg_settings.settings_from_confattr(settings)) self.reactor.addSystemEventTrigger("before", "shutdown", self._flush) self.reactor.callInThread(self._createMetrics) self._lc = task.LoopingCall(self._background) self._lc.start(settings["CARBON_METRIC_INTERVAL"], now=False)