def _getDsDatapoints(self, comp, ds, perfServer): """ Given a component a data source, gather its data points """ points = [] component_name = ds.getComponent(comp) basepath = comp.rrdPath() for dp in ds.getRRDDataPoints(): alias = (dp.aliases() or [dp])[0] formula = getattr(alias, 'formula', None) dpc = DataPointConfig() dpc.id = dp.id if formula: dpc.expr=talesEval("string:%s"%formula,comp,extra={'now':'now'}) dpc.alias = alias.id.strip().lower() dpc.component = component_name dpc.rrdPath = "/".join((basepath, dp.name())) dpc.rrdType = dp.rrdtype dpc.rrdCreateSql = dp.getRRDCreateCommand(perfServer) dpc.rrdMin = dp.rrdmin dpc.rrdMax = dp.rrdmax points.append(dpc) return points
def _getDsDatapoints(self, comp, ds, perfServer, dpnames, sql=''): """ Given a component a data source, gather its data points """ points = [] if comp == comp.device(): component_name = ds.getComponent(comp) elif callable(getattr(comp, 'name', None)): component_name = comp.name() else: component_name = getattr(comp, 'id', '') basepath = comp.rrdPath() for dp in ds.getRRDDataPoints(): dpnames.add(dp.name()) dpc = DataPointConfig() dpc.id = dp.id for alias in dp.aliases(): aliasId = alias.id.strip().lower() if dpc.alias and ' %s '%aliasId not in sql: continue dpc.alias = aliasId formula = getattr(alias, 'formula', None) if not formula: continue dpc.expr=talesEval("string:%s"%formula,comp,extra={'now':'now'}) if not dpc.alias: dpc.alias = dp.id.strip().lower() dpc.component = component_name dpc.rrdPath = "/".join((basepath, dp.name())) dpc.rrdType = dp.rrdtype dpc.rrdCreateSql = dp.getRRDCreateCommand(perfServer) dpc.rrdMin = dp.rrdmin dpc.rrdMax = dp.rrdmax points.append(dpc) return points
def _getDsDatapoints(self, comp, ds, perfServer, dpnames, sql=''): """ Given a component a data source, gather its data points """ points = [] if comp == comp.device(): component_name = ds.getComponent(comp) elif callable(getattr(comp, 'name', None)): component_name = comp.name() else: component_name = getattr(comp, 'id', '') basepath = comp.rrdPath() for dp in ds.getRRDDataPoints(): dpnames.add(dp.name()) dpc = DataPointConfig() dpc.id = dp.id for alias in dp.aliases(): aliasId = alias.id.strip().lower() if dpc.alias and ' %s ' % aliasId not in sql: continue dpc.alias = aliasId formula = getattr(alias, 'formula', None) if not formula: continue dpc.expr = talesEval("string:%s" % formula, comp, extra={'now': 'now'}) if not dpc.alias: dpc.alias = dp.id.strip().lower() dpc.component = component_name dpc.rrdPath = "/".join((basepath, dp.name())) dpc.rrdType = dp.rrdtype dpc.rrdCreateSql = dp.getRRDCreateCommand(perfServer) dpc.rrdMin = dp.rrdmin dpc.rrdMax = dp.rrdmax points.append(dpc) return points