[rrd-users] Why do I see NaN values?

Alex van den Bogaerdt alex at ergens.op.het.net
Wed May 21 12:04:36 CEST 2008

On Wed, May 21, 2008 at 09:35:34AM +0000, Leon Stringer wrote:
> Hi,
> I've created an RRD database to store a value (server clock offset in
> ms). I've created a cron job to add the value every 6 hours. As far
> as I can tell the job is running correctly and getting a valid value.
> However, when I run rrd fetch I get a lot of NaN values (between a
> quarter and a third of values) so the generated graphs have gaps too.
> I created the file with:
>   rrdtool create file.rrd -s 21600 DS:offset:GAUGE:21600:U:U
>       RRA:MAX:0:1:360
> I add the data with:
>   rrdtool update file.rrd N:<val>	(E.g. 1.903, -0.424, etc.)
> And I query data with:
>   rrdtool fetch -s -1week file.rrd MAX
> Can anyone tell me why I see NaN values instead of the values I
> (think!) am putting in?

Short answer: because you are using timestamp "N" and heartbeat 21600.

Longer answer:

When you run your script, it is not exactly 00:00, 06:00, 12:00, 18:00.
Sometimes the interval between two updates is a bit longer than 21600
seconds, other times it is a bit shorter.

When the interval is a bit shorter, RRDtool will accept the resulting
rate, when the interval is a bit longer, you(!) ask RRDtool to skip
that rate.


1: use fixed timestamps
2: allow for some slack (increase your heartbeat)

Alex van den Bogaerdt

More information about the rrd-users mailing list