Changeset 12 for trunk/daemon


Ignore:
Timestamp:
03/22/05 14:46:56 (19 years ago)
Author:
bastiaans
Message:

daemon/togad.py:

  • Miscellanious debug msg restyling
  • Correct time handling for metrics
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/daemon/togad.py

    r11 r12  
    77import rrdtool
    88import string
     9import os
     10import os.path
    911
    1012# Specify debugging level here;
     
    4749                        self.XMLSource = attrs.get('SOURCE',"")
    4850                        self.gangliaVersion = attrs.get('VERSION',"")
    49                         if (DEBUG_LEVEL>9): print 'Found XML data: source %s version %s' %( self.XMLSource, self.gangliaVersion )
     51                        debug_msg( 10, 'Found XML data: source %s version %s' %( self.XMLSource, self.gangliaVersion ) )
    5052
    5153                elif name == 'GRID':
    5254                        self.gridName = attrs.get('NAME',"")
    53                         if (DEBUG_LEVEL>9): print '`-Grid found: %s' %( self.gridName )
     55                        self.time = attrs.get('LOCALTIME',"")
     56                        debug_msg( 10, '`-Grid found: %s' %( self.gridName ) )
    5457
    5558                elif name == 'CLUSTER':
    5659                        self.clusterName = attrs.get('NAME',"")
     60                        self.time = attrs.get('LOCALTIME',"")
    5761                        self.rrd = RRDHandler( self.clusterName )
    58                         if (DEBUG_LEVEL>9): print ' |-Cluster found: %s' %( self.clusterName )
     62                        debug_msg( 10, ' |-Cluster found: %s' %( self.clusterName ) )
    5963
    6064                elif name == 'HOST':     
     
    6468                        # Reset the metrics list for each host
    6569                        self.metrics = [ ]
    66                         if (DEBUG_LEVEL>9): print ' | |-Host found: %s - ip %s reported %s' %( self.hostName, self.hostIp, self.hostReported )
     70                        debug_msg( 10, ' | |-Host found: %s - ip %s reported %s' %( self.hostName, self.hostIp, self.hostReported ) )
    6771
    6872                elif name == 'METRIC':
     
    7074                        myMetric['name'] = attrs.get('NAME',"")
    7175                        myMetric['val'] = attrs.get('VAL',"")
     76                        myMetric['time'] = self.time
    7277
    7378                        self.metrics.append( myMetric )
    74                         if (DEBUG_LEVEL>10): print ' | | |-metric: %s:%s' %( myMetric['name'], myMetric['val'] )
     79                        debug_msg( 11, ' | | |-metric: %s:%s' %( myMetric['name'], myMetric['val'] ) )
    7580
    7681                return
    7782
    7883        def endElement( self, name ):
    79                 #if name == 'ganglia_xml':
    80 
    81                 #if name == 'grid':
    82 
    83                 #if name == 'cluster':
    84 
    85                 if name == 'host':     
     84                #if name == 'GANGLIA_XML':
     85
     86                #if name == 'GRID':
     87
     88                #if name == 'CLUSTER':
     89
     90                if name == 'HOST':     
    8691                        self.storeMetrics( self.hostName )
    8792
    88                 #if name == 'metric':
     93                #if name == 'METRIC':
    8994
    9095        def storeMetrics( self, hostname ):
    9196
    9297                for metric in self.metrics:
    93                         self.rrd.checkCreate( hostname, metric['name'] )       
     98                        self.rrd.createCheck( hostname, metric )       
    9499                        self.rrd.update( hostname, metric['name'], metric['val'] )
    95                         if (DEBUG_LEVEL>8): print 'stored metric %s for %s: %s' %( hostname, metric['name'], metric['val'] )
     100                        debug_msg( 9, 'stored metric %s for %s: %s' %( hostname, metric['name'], metric['val'] ) )
    96101                        sys.exit(1)
    97102       
     
    167172                sys.stdin.close()
    168173                sys.stdout.close()
    169                 sys.stderr.close()
     174                if (DEBUGLEVEL == 0):
     175                        sys.stderr.close()
    170176
    171177                os.open('/dev/null', 0)
     
    226232                                                if valid_interval and len(word) > 0:
    227233                                                        source['interval'] = word
    228                                                         if (DEBUG_LEVEL>8): print 'polling interval for %s = %s' %(source['name'], source['interval'] )
     234                                                        debug_msg( 9, 'polling interval for %s = %s' %(source['name'], source['interval'] ) )
    229235               
    230236                # No interval found, use Ganglia's default     
    231237                if not source.has_key( 'interval' ):
    232238                        source['interval'] = 15
    233                         if (DEBUG_LEVEL>8): print 'polling interval for %s defaulted to 15' %(source['name'])
     239                        debug_msg( 9, 'polling interval for %s defaulted to 15' %(source['name']) )
    234240
    235241                self.sources.append( source )
     
    237243        def getInterval( self, source_name ):
    238244                for source in self.sources:
    239                         if source['name'] == name:
     245                        if source['name'] == source_name:
    240246                                return source['interval']
    241247                return None
     
    251257                "Check if an .rrd allready exists for this metric, create if not"
    252258
     259                rrd_parameters = [ ]
    253260                rrd_dir = '%s/%s/%s' %( check_dir(ARCHIVE_PATH), self.cluster, host )
    254261
     
    256263                        os.makedirs( rrd_dir )
    257264
    258                 rrd_file = '%s/%s.rrd' %( rrd_dir, metric )
     265                rrd_file = '%s/%s.rrd' %( rrd_dir, metric['name'] )
    259266
    260267                interval = self.gmetad_conf.getInterval( self.cluster )
     268                heartbeat = 8 * int(interval)
     269
     270                rrd_parameters.append( '--step' )
     271                rrd_parameters.append( interval )
     272
     273                rrd_parameters.append( '--start' )
     274                rrd_parameters.append( metric['time'] )
     275
     276                print rrd_parameters
    261277
    262278        def update( self, metric, timestamp, val ):
     
    280296
    281297        return directory
     298
     299def debug_msg( level, msg ):
     300
     301        if (DEBUG_LEVEL >= level):
     302                sys.stderr.write( msg + '\n' )
    282303
    283304# Let's go
Note: See TracChangeset for help on using the changeset viewer.