class PerfDataUtils(object): """docstring for PerfDataUtils""" def __init__(self): self.manager = PerfData() def perfdata_count(self, metric_id, timewindow=None): if timewindow is not None: timewindow = TimeWindow(**timewindow) result = self.manager.count( metric_id=metric_id, timewindow=timewindow ) return result def perfdata( self, metric_id, timewindow=None, period=None, with_meta=True, limit=0, skip=0, timeserie=None ): if timewindow is not None: timewindow = TimeWindow(**timewindow) if timeserie is not None: if period is None: period = timeserie.pop('period', None) timeserie = TimeSerie(**timeserie) if period is not None: timeserie.period = Period(**period) if not isinstance(metric_id, list): metrics = [metric_id] else: metrics = metric_id result = [] for metric_id in metrics: pts, meta = self.manager.get( metric_id=metric_id, with_meta=True, timewindow=timewindow, limit=limit, skip=skip ) meta = meta[0] if timeserie is not None: pts = timeserie.calculate(pts, timewindow, meta=meta) if with_meta: result.append({ "points": pts, "meta": meta }) else: result.append({ "points": pts }) return (result, len(result)) def perfdata_meta(self, metric_id, timewindow=None, limit=0, sort=None): if timewindow is not None: timewindow = TimeWindow(**timewindow) result = self.manager.get_meta( metric_id=metric_id, timewindow=timewindow, limit=limit, sort=sort ) return result