<html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:10pt"><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"><span><br></span></div><div style="font-family: arial, helvetica, sans-serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;">Hi Alan,</div><div style="font-family: arial, helvetica, sans-serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;"><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;">Your step size and minimal heartbeat are equal; which means you must insert data no longer than exactly 1800 seconds apart.</div><div style="font-family: arial, helvetica, sans-serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;"><br></div><div
 style="font-family: arial, helvetica, sans-serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;">Double the minimal heartbeat and you should be fine.</div><div style="font-family: arial, helvetica, sans-serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;"><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal;"><br></div>  <div style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"> <div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt;"> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1">  <b><span style="font-weight:bold;">From:</span></b> Alan McKay &lt;alan.mckay@gmail.com&gt;<br> <b><span style="font-weight: bold;">To:</span></b> rrd-users &lt;rrd-users@lists.oetiker.ch&gt; <br> <b><span style="font-weight:
 bold;">Sent:</span></b> Thursday, April 4, 2013 4:04 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [rrd-users] why are there holes in my graphs?<br> </font> </div> <br>
Anyone, anyone, Buehler?<br><br>On Tue, Apr 2, 2013 at 6:09 PM, Alan McKay &lt;<a ymailto="mailto:alan.mckay@gmail.com" href="mailto:alan.mckay@gmail.com">alan.mckay@gmail.com</a>&gt; wrote:<br>&gt; So I am getting holes, and at first I figured it out why and then I<br>&gt; tuned the RRD file to fix it but I'm still getting holes.<br>&gt; This is my graph for my internet speed, and originally I set the upper<br>&gt; limit on the values to 35 since my connection is a 28Mbit one.&nbsp; But<br>&gt; then I had to bump it up to 55 because there were values higher than<br>&gt; 35, and finally I noticed a few higher than 55 so I bumped it to 100.<br>&gt; And still getting holes.&nbsp;  So then I set it to U and still got holes,<br>&gt; so now I put it back to 100 just because.&nbsp;  All using "rrdtool tune"<br>&gt; and verifying with a data dump.<br>&gt;<br>&gt; http://108.162.170.186/speedtest/<br>&gt;<br>&gt; If I do rrdtool fetch I see this - with a bunch
 of -nan rows that I<br>&gt; can't explain<br>&gt;<br>&gt; 1364925600: -nan -nan -nan -nan -nan -nan -nan -nan -nan<br>&gt; 1364927400: 1.2800000000e+01 2.2320000000e+01 2.7120000000e+01<br>&gt; 3.3520000000e+01 3.1040000000e+01 4.0240000000e+01 2.6960000000e+01<br>&gt; 2.7280000000e+01 1.6726000000e+01<br>&gt; 1364929200: 1.2640088889e+01 2.2160088889e+01 1.5686355556e+01<br>&gt; 2.2805955556e+01 1.9846222222e+01 3.3523733333e+01 3.5035511111e+01<br>&gt; 2.4961288889e+01 1.5946433333e+01<br>&gt; 1364931000: 1.2320177778e+01 5.2143333333e+01 1.4080888889e+01<br>&gt; 2.3119822222e+01 1.7041555556e+01 3.7837600000e+01 2.5445333333e+01<br>&gt; 2.9677377778e+01 1.6516682778e+01<br>&gt; 1364932800: 1.3519333333e+01 1.2102266667e+01 1.7678000000e+01<br>&gt; 1.0247155556e+01 2.4555822222e+01 1.5452444444e+01 3.6873644444e+01<br>&gt; 1.2729422222e+01 1.6100231667e+01<br>&gt; 1364934600: 1.5838711111e+01 2.3273777778e+01 1.1283555556e+01<br>&gt; 2.3832444444e+01
 1.5684933333e+01 3.5428888889e+01 1.2413600000e+01<br>&gt; 3.5427377778e+01 1.5219489444e+01<br>&gt; 1364936400: 1.3041555556e+01 6.4493555556e+00 1.3678666667e+01<br>&gt; 7.5090777778e+00 2.7433466667e+01 9.2945333333e+00 9.7614666667e+00<br>&gt; 3.4400577778e+01 1.6411337222e+01<br>&gt; 1364938200: -nan -nan -nan -nan -nan -nan -nan -nan -nan<br>&gt; 1364940000: -nan -nan -nan -nan -nan -nan -nan -nan -nan<br>&gt; 1364941800: -nan -nan -nan -nan -nan -nan -nan -nan -nan<br>&gt;<br>&gt; If I take a few of those rows I can grep for them in the log file I<br>&gt; create which saves a copy of the commands I use to insert into the RRD<br>&gt;<br>&gt; root@userver:~# grep 13649256 /var/log/speedtest/bash/rrdupdate<br>&gt; 2013-04-02 14:00:02 2013-04-02 14:00:39 rrdtool update<br>&gt; /var/log/speedtest/speedtest.rrd -t<br>&gt; ping:500:1000:1500:2000:2500:3000:3500:4000<br>&gt; 1364925602:16.217:13.84:21.68:16.80:30.08:18.88:41.36:29.52:27.92<br>&gt;
 root@userver:~# grep 13649382 !$<br>&gt; grep 13649382 /var/log/speedtest/bash/rrdupdate<br>&gt; 2013-04-02 17:30:02 2013-04-02 17:31:26 rrdtool update<br>&gt; /var/log/speedtest/speedtest.rrd -t<br>&gt; ping:500:1000:1500:2000:2500:3000:3500:4000<br>&gt; 1364938202:15.986:8.00:7.34:12.56:9.68:21.36:8.10:24.32:7.14<br>&gt; root@userver:~# grep 13649400 !$<br>&gt; grep 13649400 /var/log/speedtest/bash/rrdupdate<br>&gt; 2013-04-02 18:00:01 2013-04-02 18:01:18 rrdtool update<br>&gt; /var/log/speedtest/speedtest.rrd -t<br>&gt; ping:500:1000:1500:2000:2500:3000:3500:4000<br>&gt; 1364940001:16.857:6.47:14.48:6.97:22.40:6.88:23.28:6.87:21.60<br>&gt;<br>&gt; And I don't see any values there that should be a problem.<br>&gt;<br>&gt; filename = "/var/log/speedtest/speedtest.rrd"<br>&gt; rrd_version = "0003"<br>&gt; step = 1800<br>&gt; last_update = 1364940001<br>&gt; header_size = 3080<br>&gt; ds[500].index = 0<br>&gt; ds[500].type = "GAUGE"<br>&gt;
 ds[500].minimal_heartbeat = 1800<br>&gt; ds[500].min = 0.0000000000e+00<br>&gt; ds[500].max = 1.0000000000e+02<br>&gt; ds[500].last_ds = "6.47"<br>&gt; ds[500].value = 6.4700000000e+00<br>&gt; ds[500].unknown_sec = 0<br>&gt; ds[1000].index = 1<br>&gt; ds[1000].type = "GAUGE"<br>&gt; ds[1000].minimal_heartbeat = 1800<br>&gt; ds[1000].min = 0.0000000000e+00<br>&gt; ds[1000].max = 1.0000000000e+02<br>&gt; ds[1000].last_ds = "14.48"<br>&gt; ds[1000].value = 1.4480000000e+01<br>&gt; ds[1000].unknown_sec = 0<br>&gt; ds[1500].index = 2<br>&gt; ds[1500].type = "GAUGE"<br>&gt; ds[1500].minimal_heartbeat = 1800<br>&gt; ds[1500].min = 0.0000000000e+00<br>&gt; ds[1500].max = 1.0000000000e+02<br>&gt; ds[1500].last_ds = "6.97"<br>&gt; ds[1500].value = 6.9700000000e+00<br>&gt; ds[1500].unknown_sec = 0<br>&gt; ds[2000].index = 3<br>&gt; ds[2000].type = "GAUGE"<br>&gt; ds[2000].minimal_heartbeat = 1800<br>&gt; ds[2000].min = 0.0000000000e+00<br>&gt; ds[2000].max =
 1.0000000000e+02<br>&gt; ds[2000].last_ds = "22.40"<br>&gt; ds[2000].value = 2.2400000000e+01<br>&gt; ds[2000].unknown_sec = 0<br>&gt; ds[2500].index = 4<br>&gt; ds[2500].type = "GAUGE"<br>&gt; ds[2500].minimal_heartbeat = 1800<br>&gt; ds[2500].min = 0.0000000000e+00<br>&gt; ds[2500].max = 1.0000000000e+02<br>&gt; ds[2500].last_ds = "6.88"<br>&gt; ds[2500].value = 6.8800000000e+00<br>&gt; ds[2500].unknown_sec = 0<br>&gt; ds[3000].index = 5<br>&gt; ds[3000].type = "GAUGE"<br>&gt; ds[3000].minimal_heartbeat = 1800<br>&gt; ds[3000].min = 0.0000000000e+00<br>&gt; ds[3000].max = 1.0000000000e+02<br>&gt; ds[3000].last_ds = "23.28"<br>&gt; ds[3000].value = 2.3280000000e+01<br>&gt; ds[3000].unknown_sec = 0<br>&gt; ds[3500].index = 6<br>&gt; ds[3500].type = "GAUGE"<br>&gt; ds[3500].minimal_heartbeat = 1800<br>&gt; ds[3500].min = 0.0000000000e+00<br>&gt; ds[3500].max = 1.0000000000e+02<br>&gt; ds[3500].last_ds = "6.87"<br>&gt; ds[3500].value =
 6.8700000000e+00<br>&gt; ds[3500].unknown_sec = 0<br>&gt; ds[4000].index = 7<br>&gt; ds[4000].type = "GAUGE"<br>&gt; ds[4000].minimal_heartbeat = 1800<br>&gt; ds[4000].min = 0.0000000000e+00<br>&gt; ds[4000].max = 1.0000000000e+02<br>&gt; ds[4000].last_ds = "21.60"<br>&gt; ds[4000].value = 2.1600000000e+01<br>&gt; ds[4000].unknown_sec = 0<br>&gt; ds[ping].index = 8<br>&gt; ds[ping].type = "GAUGE"<br>&gt; ds[ping].minimal_heartbeat = 1800<br>&gt; ds[ping].min = 1.0000000000e+00<br>&gt; ds[ping].max = 1.0000000000e+03<br>&gt; ds[ping].last_ds = "16.857"<br>&gt; ds[ping].value = 1.6857000000e+01<br>&gt; ds[ping].unknown_sec = 0<br>&gt;<br>&gt; --<br>&gt; “Don't eat anything you've ever seen advertised on TV”<br>&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - Michael Pollan, author of "In Defense of Food"<br><br><br><br>-- <br>“Don't eat anything you've ever seen advertised on TV”<br>&nbsp; &nbsp; &nbsp; &nbsp;  - Michael Pollan, author of "In Defense of
 Food"<br><br>_______________________________________________<br>rrd-users mailing list<br><a ymailto="mailto:rrd-users@lists.oetiker.ch" href="mailto:rrd-users@lists.oetiker.ch">rrd-users@lists.oetiker.ch</a><br><a href="https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users" target="_blank">https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users</a><br><br><br> </div> </div>  </div></body></html>