- Timestamp:
- 03/22/05 14:46:56 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/daemon/togad.py
r11 r12 7 7 import rrdtool 8 8 import string 9 import os 10 import os.path 9 11 10 12 # Specify debugging level here; … … 47 49 self.XMLSource = attrs.get('SOURCE',"") 48 50 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 ) ) 50 52 51 53 elif name == 'GRID': 52 54 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 ) ) 54 57 55 58 elif name == 'CLUSTER': 56 59 self.clusterName = attrs.get('NAME',"") 60 self.time = attrs.get('LOCALTIME',"") 57 61 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 ) ) 59 63 60 64 elif name == 'HOST': … … 64 68 # Reset the metrics list for each host 65 69 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 ) ) 67 71 68 72 elif name == 'METRIC': … … 70 74 myMetric['name'] = attrs.get('NAME',"") 71 75 myMetric['val'] = attrs.get('VAL',"") 76 myMetric['time'] = self.time 72 77 73 78 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'] ) ) 75 80 76 81 return 77 82 78 83 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': 86 91 self.storeMetrics( self.hostName ) 87 92 88 #if name == ' metric':93 #if name == 'METRIC': 89 94 90 95 def storeMetrics( self, hostname ): 91 96 92 97 for metric in self.metrics: 93 self.rrd.c heckCreate( hostname, metric['name'])98 self.rrd.createCheck( hostname, metric ) 94 99 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'] ) ) 96 101 sys.exit(1) 97 102 … … 167 172 sys.stdin.close() 168 173 sys.stdout.close() 169 sys.stderr.close() 174 if (DEBUGLEVEL == 0): 175 sys.stderr.close() 170 176 171 177 os.open('/dev/null', 0) … … 226 232 if valid_interval and len(word) > 0: 227 233 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'] ) ) 229 235 230 236 # No interval found, use Ganglia's default 231 237 if not source.has_key( 'interval' ): 232 238 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']) ) 234 240 235 241 self.sources.append( source ) … … 237 243 def getInterval( self, source_name ): 238 244 for source in self.sources: 239 if source['name'] == name:245 if source['name'] == source_name: 240 246 return source['interval'] 241 247 return None … … 251 257 "Check if an .rrd allready exists for this metric, create if not" 252 258 259 rrd_parameters = [ ] 253 260 rrd_dir = '%s/%s/%s' %( check_dir(ARCHIVE_PATH), self.cluster, host ) 254 261 … … 256 263 os.makedirs( rrd_dir ) 257 264 258 rrd_file = '%s/%s.rrd' %( rrd_dir, metric )265 rrd_file = '%s/%s.rrd' %( rrd_dir, metric['name'] ) 259 266 260 267 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 261 277 262 278 def update( self, metric, timestamp, val ): … … 280 296 281 297 return directory 298 299 def debug_msg( level, msg ): 300 301 if (DEBUG_LEVEL >= level): 302 sys.stderr.write( msg + '\n' ) 282 303 283 304 # Let's go
Note: See TracChangeset
for help on using the changeset viewer.