def metric_add(self, dn, bunit=None, dtype=None): self.logger.debug("Add metric '%s' (%s)" % (dn, bunit)) if not self.metric_exist(dn=dn): metric_id = self.metric_make_id(dn) self.logger.debug(" + Metric ID: '%s'" % metric_id) mymetric = metric( _id=metric_id, dn=dn, bunit=bunit, dtype=dtype, node=self, retention=self.retention, storage=self.storage, point_per_dca=self.point_per_dca, rotate_plan=self.rotate_plan, ) mymetric.save() self.metrics[metric_id] = mymetric self.save() return mymetric else: self.logger.debug(" + Metric allready exist") _id = self.metric_get_id(dn=dn) return metric_get(_id=_id)
def metric_get(self, dn=None, _id=None): _id = self.metric_get_id(dn, _id) try: item = self.metrics[_id] except: self.logger.error("Unknown metric '%s' ... " % dn) return None if not isinstance(item ,metric): ## load metric from store item = metric(_id=item['id'], node=self, storage=self.storage) self.metrics[_id] = item return item