[rrd-users] why are there holes in my graphs?

Alan McKay alan.mckay at gmail.com
Wed Apr 3 00:09:59 CEST 2013


So I am getting holes, and at first I figured it out why and then I
tuned the RRD file to fix it but I'm still getting holes.
This is my graph for my internet speed, and originally I set the upper
limit on the values to 35 since my connection is a 28Mbit one.  But
then I had to bump it up to 55 because there were values higher than
35, and finally I noticed a few higher than 55 so I bumped it to 100.
And still getting holes.   So then I set it to U and still got holes,
so now I put it back to 100 just because.   All using "rrdtool tune"
and verifying with a data dump.

http://108.162.170.186/speedtest/

If I do rrdtool fetch I see this - with a bunch of -nan rows that I
can't explain

1364925600: -nan -nan -nan -nan -nan -nan -nan -nan -nan
1364927400: 1.2800000000e+01 2.2320000000e+01 2.7120000000e+01
3.3520000000e+01 3.1040000000e+01 4.0240000000e+01 2.6960000000e+01
2.7280000000e+01 1.6726000000e+01
1364929200: 1.2640088889e+01 2.2160088889e+01 1.5686355556e+01
2.2805955556e+01 1.9846222222e+01 3.3523733333e+01 3.5035511111e+01
2.4961288889e+01 1.5946433333e+01
1364931000: 1.2320177778e+01 5.2143333333e+01 1.4080888889e+01
2.3119822222e+01 1.7041555556e+01 3.7837600000e+01 2.5445333333e+01
2.9677377778e+01 1.6516682778e+01
1364932800: 1.3519333333e+01 1.2102266667e+01 1.7678000000e+01
1.0247155556e+01 2.4555822222e+01 1.5452444444e+01 3.6873644444e+01
1.2729422222e+01 1.6100231667e+01
1364934600: 1.5838711111e+01 2.3273777778e+01 1.1283555556e+01
2.3832444444e+01 1.5684933333e+01 3.5428888889e+01 1.2413600000e+01
3.5427377778e+01 1.5219489444e+01
1364936400: 1.3041555556e+01 6.4493555556e+00 1.3678666667e+01
7.5090777778e+00 2.7433466667e+01 9.2945333333e+00 9.7614666667e+00
3.4400577778e+01 1.6411337222e+01
1364938200: -nan -nan -nan -nan -nan -nan -nan -nan -nan
1364940000: -nan -nan -nan -nan -nan -nan -nan -nan -nan
1364941800: -nan -nan -nan -nan -nan -nan -nan -nan -nan

If I take a few of those rows I can grep for them in the log file I
create which saves a copy of the commands I use to insert into the RRD

root at userver:~# grep 13649256 /var/log/speedtest/bash/rrdupdate
2013-04-02 14:00:02 2013-04-02 14:00:39 rrdtool update
/var/log/speedtest/speedtest.rrd -t
ping:500:1000:1500:2000:2500:3000:3500:4000
1364925602:16.217:13.84:21.68:16.80:30.08:18.88:41.36:29.52:27.92
root at userver:~# grep 13649382 !$
grep 13649382 /var/log/speedtest/bash/rrdupdate
2013-04-02 17:30:02 2013-04-02 17:31:26 rrdtool update
/var/log/speedtest/speedtest.rrd -t
ping:500:1000:1500:2000:2500:3000:3500:4000
1364938202:15.986:8.00:7.34:12.56:9.68:21.36:8.10:24.32:7.14
root at userver:~# grep 13649400 !$
grep 13649400 /var/log/speedtest/bash/rrdupdate
2013-04-02 18:00:01 2013-04-02 18:01:18 rrdtool update
/var/log/speedtest/speedtest.rrd -t
ping:500:1000:1500:2000:2500:3000:3500:4000
1364940001:16.857:6.47:14.48:6.97:22.40:6.88:23.28:6.87:21.60

And I don't see any values there that should be a problem.

filename = "/var/log/speedtest/speedtest.rrd"
rrd_version = "0003"
step = 1800
last_update = 1364940001
header_size = 3080
ds[500].index = 0
ds[500].type = "GAUGE"
ds[500].minimal_heartbeat = 1800
ds[500].min = 0.0000000000e+00
ds[500].max = 1.0000000000e+02
ds[500].last_ds = "6.47"
ds[500].value = 6.4700000000e+00
ds[500].unknown_sec = 0
ds[1000].index = 1
ds[1000].type = "GAUGE"
ds[1000].minimal_heartbeat = 1800
ds[1000].min = 0.0000000000e+00
ds[1000].max = 1.0000000000e+02
ds[1000].last_ds = "14.48"
ds[1000].value = 1.4480000000e+01
ds[1000].unknown_sec = 0
ds[1500].index = 2
ds[1500].type = "GAUGE"
ds[1500].minimal_heartbeat = 1800
ds[1500].min = 0.0000000000e+00
ds[1500].max = 1.0000000000e+02
ds[1500].last_ds = "6.97"
ds[1500].value = 6.9700000000e+00
ds[1500].unknown_sec = 0
ds[2000].index = 3
ds[2000].type = "GAUGE"
ds[2000].minimal_heartbeat = 1800
ds[2000].min = 0.0000000000e+00
ds[2000].max = 1.0000000000e+02
ds[2000].last_ds = "22.40"
ds[2000].value = 2.2400000000e+01
ds[2000].unknown_sec = 0
ds[2500].index = 4
ds[2500].type = "GAUGE"
ds[2500].minimal_heartbeat = 1800
ds[2500].min = 0.0000000000e+00
ds[2500].max = 1.0000000000e+02
ds[2500].last_ds = "6.88"
ds[2500].value = 6.8800000000e+00
ds[2500].unknown_sec = 0
ds[3000].index = 5
ds[3000].type = "GAUGE"
ds[3000].minimal_heartbeat = 1800
ds[3000].min = 0.0000000000e+00
ds[3000].max = 1.0000000000e+02
ds[3000].last_ds = "23.28"
ds[3000].value = 2.3280000000e+01
ds[3000].unknown_sec = 0
ds[3500].index = 6
ds[3500].type = "GAUGE"
ds[3500].minimal_heartbeat = 1800
ds[3500].min = 0.0000000000e+00
ds[3500].max = 1.0000000000e+02
ds[3500].last_ds = "6.87"
ds[3500].value = 6.8700000000e+00
ds[3500].unknown_sec = 0
ds[4000].index = 7
ds[4000].type = "GAUGE"
ds[4000].minimal_heartbeat = 1800
ds[4000].min = 0.0000000000e+00
ds[4000].max = 1.0000000000e+02
ds[4000].last_ds = "21.60"
ds[4000].value = 2.1600000000e+01
ds[4000].unknown_sec = 0
ds[ping].index = 8
ds[ping].type = "GAUGE"
ds[ping].minimal_heartbeat = 1800
ds[ping].min = 1.0000000000e+00
ds[ping].max = 1.0000000000e+03
ds[ping].last_ds = "16.857"
ds[ping].value = 1.6857000000e+01
ds[ping].unknown_sec = 0

-- 
“Don't eat anything you've ever seen advertised on TV”
         - Michael Pollan, author of "In Defense of Food"



More information about the rrd-users mailing list