def _graph(self, period): """ Internal call to _graph, I deal with the stuff that gets sent from graph(), I can be overridden if more custom graphing behavior is required. I am called every every `config.graph_draw_frequency[period]` seconds. """ fmt_dict = { 'period': period, 'filename': self.filename, 'id': self.id, 'timestamp': int(time.time()), 'template': self.template, } defers = [] for i, graph in enumerate(self.graph()): filename = '%s-%s.%i.png' % (self.id, period, i) defers.append( rrdtool.graph( os.path.join(self.factory.stats.config['image_path'], filename), *[ln % fmt_dict for ln in graph] ).addErrback( self._graphError, filename ).addCallback( self._graphSuccess, filename ) ) return DeferredList(defers, consumeErrors = True)
def _graph(self, period): fmt_dict = { 'period': period, 'filename': self.filename } filename = '%s-%s.0.png' % (self.id, period) log.msg('Generating graph %r!' % filename, logLevel = logging.DEBUG) try: yield rrdtool.graph( os.path.join(self.factory.stats.config['image_path'], filename), *list(self.graph(fmt_dict)) ) self.factory.stats.last_draw_timestamp[filename] = int(time.time()) except: log.err()