[rrd-users] Returning nan values

Emily Chouinard cousin17 at msu.edu
Thu Jun 19 20:13:57 CEST 2008


Well the data I'm inputing from /proc/stat come in as a string but its a 
string of numbers, can I change that somehow? Do you think that would 
fix it?

Matthew M. Boedicker wrote:
> Sorry, disregard the part about checking for errors. I was thinking of the perl
> bindings, the Python bindings throw exceptions.
>
> I just did a test and rrdtool does allow updates with values that are not
> numbers. It must silently discard the data? It seems like checking this might
> be a good idea.
>
> On Thu, Jun 19, 2008 at 01:45:02PM -0400, Matthew M. Boedicker wrote:
>   
>> If your update statement is:
>>
>> rrdtool.update('cpu.rrd','N:+user+:+nice+:+sys+:+idle+')
>>
>> it's trying to update with the string N:+user+:+nice+:+sys+:+idle+ every time
>> and not putting in the actual numbers.
>>
>> It should be something like:
>>
>> rrdtool.update('cpu.rrd',"N:%s:%s:%s:%s" % (user, nice, sys, idle))
>>
>> Are you checking for errors after update? I would think it would say something
>> if you are trying to update with values like "+user+".
>>
>> On Thu, Jun 19, 2008 at 01:36:55PM -0400, Emily Chouinard wrote:
>>     
>>> So I've got my code all done but my update function doesn't work. I want 
>>> to take the values from the /proc/stat file and update my rrd with them 
>>> but when I do an rrdtool fetch cpu.rrd AVERAGE and several interations I 
>>> get:
>>>  fetch cpu.rrd AVERAGE
>>>                            user                nice                 
>>> sys               idle
>>>
>>> 1213810500: nan nan nan nan
>>> 1213810800: nan nan nan nan
>>> 1213811100: nan nan nan nan
>>>
>>> (but that is just a small glip of all the nan values I get) I was 
>>> wondering if my update function was correct, my rrd is created properly 
>>> using
>>> rrdtool.create('cpu.rrd',
>>>      'DS:user:DERIVE:30:0:U',
>>>      'DS:nice:DERIVE:30:0:U',
>>>      'DS:sys:DERIVE:30:0:U',
>>>      'DS:idle:DERIVE:30:0:U',
>>>      'RRA:AVERAGE:0.5:1:576',
>>>      'RRA:AVERAGE:0.5:6:672',
>>>      'RRA:AVERAGE:0.5:24:732',
>>>      'RRA:AVERAGE:0.5:144:1460')
>>>
>>> and then I run a loop to extract the data from a file
>>>  infile= open('/proc/stat', 'r')
>>>     #for x in range(0,1):
>>>     line = infile.readline()
>>>     if line.startswith('cpu'):
>>>     info = line.split()   
>>>     user = info[1]
>>>     nice = info[2]    
>>>     sys = info[3]
>>>     idle = info[4]
>>> and then I try to update these values from user, nice sys and idle into 
>>> my rrd with
>>> rrdtool.update('cpu.rrd','N:+user+:+nice+:+sys+:+idle+')
>>>
>>> but it only gives my nan values, any suggestions on why this is?
>>>
>>> _______________________________________________
>>> rrd-users mailing list
>>> rrd-users at lists.oetiker.ch
>>> https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
>>>       
>> _______________________________________________
>> rrd-users mailing list
>> rrd-users at lists.oetiker.ch
>> https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
>>     
>
> _______________________________________________
> rrd-users mailing list
> rrd-users at lists.oetiker.ch
> https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
>
>
>   



More information about the rrd-users mailing list