[rrd-users] Please Help

Emily Chouinard cousin17 at msu.edu
Wed Jun 18 14:51:50 CEST 2008


I've spent a whole day looking at my code and trying to figure out why 
nothing is being graphed but I can't seem to figure out it, will someone 
please help me? My code is below and it seems to work, but I don't know 
if its the update or graph function thats not working, when I ls -l all 
my rrd files and my png seem updated but when I display my png it shows 
the legend and stuff but no values are actually graphed. So any help 
would be really appreciated.
   Thanks,
            Emily
import rrdtool
import os
import time


interval = 10
interval = str(interval)
interval_mins = float(interval) / 60
heartbeat = str(int(interval) * 2)
cur_date = time.strftime('%m/%d/%Y %H\:%M\:%S', time.localtime())

rrdtool.create('usr.rrd',
         'DS:usr_info:COUNTER:%s:U:U' % heartbeat,
      'RRA:AVERAGE:0.5:1:%s' % int(4000 / interval_mins),
     'RRA:AVERAGE:0.5:%d:800' % int(30 / interval_mins),
     'RRA:AVERAGE:0.5:%d:800' % int(120 / interval_mins),
           'RRA:AVERAGE:0.5:%d:800' % int(1440 / interval_mins))

rrdtool.create('sys.rrd',
     'DS:sys_info:COUNTER:%s:U:U' % heartbeat,
        'RRA:AVERAGE:0.5:1:%s' % int(4000 / interval_mins),
      'RRA:AVERAGE:0.5:%d:800' % int(30 / interval_mins),
    'RRA:AVERAGE:0.5:%d:800' % int(120 / interval_mins),
        'RRA:AVERAGE:0.5:%d:800' % int(1440 / interval_mins))   

rrdtool.create('idle.rrd',
        'DS:idle_info:COUNTER:%s:U:U' % heartbeat,
        'RRA:AVERAGE:0.5:1:%s' % int(4000 / interval_mins),
        'RRA:AVERAGE:0.5:%d:800' % int(30 / interval_mins),
        'RRA:AVERAGE:0.5:%d:800' % int(120 / interval_mins),
        'RRA:AVERAGE:0.5:%d:800' % int(1440 / interval_mins))

while True:
    infile= open('/proc/stat', 'r')
    #for x in range(0,1): #Reads first line only
    line = infile.readline()
    if line.startswith('cpu'): #Check to make sure in 1st line
    info = line.split()    #Returns a list of the words in the string
    usr_info = info[1]     #Index the three aspects of CPU Usuage
    sys_info = info[3]
    idle_info = info[4]
     #str() because Python needs to have a string
        print  usr_info, sys_info, idle_info #Print out so you can see 
what's happening
    rrdtool.update('idle.rrd','N:112431249')
    rrdtool.update('sys.rrd','N:108704')
    rrdtool.update('usr.rrd','N:259845')
    rrdtool.graph('example.png',
        'DEF:usr_info=usr.rrd:usr_info:AVERAGE',        #Defines all 
three aspects of the /proc/stat file
        'AREA:usr_info#0000FF:"User CPU usuage"',
        'DEF:sys_info=sys.rrd:sys_info:AVERAGE:step=800',
        'AREA:sys_info#00FF00:"System CPU usuage":STACK',
        'DEF:idle_info=idle.rrd:idle_info:AVERAGE:step=800', #Different 
Labels for each of the three ascp
            'AREA:idle_info#FF0000:"Idle CPU usuage":STACK',
        '--start','now-%s'%(30*60),
        '--end','now',
        '--width','500',
        '--height','250',
        '--base', '1000',
        '--vertical-label','CPU Usuage',
        '--title', 'EXAMPLE',
        'COMMENT:' + cur_date + '')   
    infile.close()   
    time.sleep(10)   



More information about the rrd-users mailing list