Thanks Alex! With your help I think I've got it all figured out.
On 1/29/07, Alex van den Bogaerdt <[EMAIL PROTECTED]> wrote:
On Mon, Jan 29, 2007 at 05:34:33PM -0500, Ben Griffith wrote:
> Hi,
>
> I have a RRD that was defined as follows:
>
> rrdtool create $sensor.rrd -s 3600 \
> DS:minutes:ABSOLUTE:3600:0:60 \
> RRA:MAX:0.5:1:4800
>
> Once per minute the RRD is updated with a 1 if my boiler is running, or
a 0
> if it is not.
An update at 19:01 describes time 19:00 to 19:01.
If your boiler was switched off a fraction of a second before you ran
your rrdtool command, you will update with a wrong status.
This will of course be countered by the opposite: your boiler switched
on a fraction of a second ago and you note "1" where the real status
should have been "0".
I thought of that, but I figured in the end the two cases would cancel each
other out. I could try updating more frequently. I think I'd have to
adjust the rate multiplier accordingly. So if I update every 15 seconds I'd
have to multiply by 900 (number of seconds in an hour divided by the number
of 15 second blocks in a minute) instead of 3600 to get the number of
minutes the boiler was on in an hour.
Your step size is 3600 seconds. Each minute you add another portion
of the hourly statistics, I think using an averaging computation.
(not 100% sure, but pretty sure)
Doesn't it just add up all the entries to get a total for the hour, then
from that a rate per second? Or does it actually compute the rate
throughout the hour, on the fly?
> I tried supplying start and end times in the DEF, but the boundaries are
> still always placed at 19:00. How can I change that?
Find a way to work with 24 hourly values instead of 1 daily value.
This is the method I chose. Here's what I came up with:
filename=/usr/local/misterhouse/trunk/data/rrd/Burner_Counter.rrd
timenow=`date | sed 's/:/\\\:/g'`
rrdtool graph /home/griffith/public_html/boiler_day.png \
--end 00\:00 --start end-7d --x-grid
DAY:7:DAY:7:DAY:1:86400:%A \
--height 200 --width 500 --imgformat PNG \
--title "Boiler run-time per day" --vertical-label "minutes" \
DEF:day1=$filename:minutes:MAX:start="midnight yesterday -
6d":end=start+23h \
DEF:day2=$filename:minutes:MAX:start="midnight yesterday -
5d":end=start+23h \
DEF:day3=$filename:minutes:MAX:start="midnight yesterday -
4d":end=start+23h \
DEF:day4=$filename:minutes:MAX:start="midnight yesterday -
3d":end=start+23h \
DEF:day5=$filename:minutes:MAX:start="midnight yesterday -
2d":end=start+23h \
DEF:day6=$filename:minutes:MAX:start="midnight yesterday -
1d":end=start+23h \
DEF:day7=$filename:minutes:MAX:start="midnight
yesterday":end=start+23h \
VDEF:minday1=day1,TOTAL \
VDEF:minday2=day2,TOTAL \
VDEF:minday3=day3,TOTAL \
VDEF:minday4=day4,TOTAL \
VDEF:minday5=day5,TOTAL \
VDEF:minday6=day6,TOTAL \
VDEF:minday7=day7,TOTAL \
CDEF:foo1=day1,minday1,+,day1,- \
CDEF:foo2=day2,minday2,+,day2,- \
CDEF:foo3=day3,minday3,+,day3,- \
CDEF:foo4=day4,minday4,+,day4,- \
CDEF:foo5=day5,minday5,+,day5,- \
CDEF:foo6=day6,minday6,+,day6,- \
CDEF:foo7=day7,minday7,+,day7,- \
AREA:foo1#ff0000 \
AREA:foo2#0000ff \
AREA:foo3#ff0000 \
AREA:foo4#0000ff \
AREA:foo5#ff0000 \
AREA:foo6#0000ff \
AREA:foo7#ff0000 \
GPRINT:minday1:" %.0lf"\
GPRINT:minday2:" %.0lf"\
GPRINT:minday3:" %.0lf"\
GPRINT:minday4:" %.0lf"\
GPRINT:minday5:" %.0lf"\
GPRINT:minday6:" %.0lf"\
GPRINT:minday7:" %.0lf\n"\
COMMENT:"$timenow"
Using the CDEFs to add in and subtract out each point seems kind of silly
but I couldn't figure out a better way to constrain each VDEF to the day it
belonged in.
Thanks again, Alex.
-Ben
_______________________________________________
rrd-users mailing list
[email protected]
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users