[rrd-users] Why doesn't my code work....rrdgraph doesn't show anything

Emily Chouinard cousin17 at msu.edu
Tue Jun 17 20:26:27 CEST 2008


So I have a code that compiles and everything, seemingly updates but 
when I display graph there's nothing graphed, the data is missing and I 
don't know why.
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 + '')   
    time.sleep(10)   



More information about the rrd-users mailing list