Beispiel #1
0
    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)
Beispiel #2
0
 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()