[rrd-users] help with GAUGE and RRAs

M. Yu myu at websprinter.net
Sun Aug 1 12:59:42 MEST 2004

Hello all,

I am new to RRDTool although I have used MRTG in the past to graph 

I need to monitor, among other things, the Signal-to-Noise Ratio (SNR) 
of several cable modems to get an accurate picture of the health of the 
cable plant.  Since I will be monitoring 100s of cable modems (CMs) and 
each CM's SNR values will be stored for a period of 1 year max, I was 
thinking of using RRD instead of mySQL to store these values.

My questions:

1. I want to store a maximum of 1 year's worth of values per CM BUT I 
need to be able to "drill down" or zoom to more specific periods (e.g. 
between dates specified by the user which may or may not fall into 
either of the specified RRAs); so while my RRAs keep daily, weekly, 
monthly and yearly archives, my users may opt to view the values for 
say, 3 days as specified by them.  Am I correct in assuming that 
"rrdtool fetch" will allow me to do this?

2. If I am correct in #1 above, then, can I just declare a year's worth 
of RRA instead of having 3 RRAs (1 for daily, 1 for weekly, 1 for 
monthly and 1 for yearly)?  And then use "rrdtool fetch" and "rrdtool 
graph" to present values/graphs for the period specified by the user 
(I'm gonna call RRDTool thru perl)?

3. I am still unsure about RRAs (I've already read several tutorials - 5 
in fact, so I *DID* RTFM first before asking).  The SNR values are like 
temperature values which I want to record exactly as read, unlike the 
bandwidth values graphed by MRTG which are averaged.  This is the RRD I 

rrdtool create snr.rrd --start N --step 300 DS:snr:GAUGE:300:-25:100 \
RRA:AVERAGE:0.5:1:288 \
RRA:AVERAGE:0.5:1:2016 \
RRA:AVERAGE:0.5:1:8928 \

I want to record every 300 secs (5 minutes) and if no value is received 
(the CM is offline) at the time of polling, log it as UNKNOWN (the 
reason for the same step value and heartbeat value).  The RRAs I've 
declared are daily, weekly, monthly and yearly.  My question is what's 
the difference with the AVERAGE,MIN,MAX and LAST CFs?  With my 
requirement, I just told it to AVERAGE 1 sample (a polled value of 25 
divided by 1 sample yields the polled value itself), and I told it to 
keep 288 samples for the daily RRA.  Is this correct?  My computation is 
as follows (forgive the detailed computation, I just want to be sure):

- 1 sample for every 300 secs (5 minutes) gives 2 samples every 600 secs 
(10 minutes)
- multiply 10 minutes by 6 to get 60 minutes; do the same to the number 
of samples and you get 12 samples per hour
- now you have 12 samples for every 1 hour, simply multiply both by 24 
(number of hours per day) to get 288 samples for every day
- to get the second (weekly) RRA, mutltiply 288 samples per day by 7 and 
you get 2016 samples per week
- to get the third (monthly) RRA, multiply 288 samples per day by 31 and 
you get 8928 samples per month
- to get the fourth (yearly) RRA, multiply 8928 samples per month by 12 
to get 107136 samples per year

Note that I want to record EVERY SAMPLE taken at 5 minute intervals and 
that if at poll time I don't get a response because the modem is 
offline, I want to record it as UNKNOWN instead of ZERO since the 
possibility exists that a CM can get a SNR value of 0 dBmV and below.

4. What instances require having multiple RRAs for every RRD?  I know 
MRTG+RRD creates 8 RRAs.  What are they for?  And in instances where 
multiple RRAs exist, how does one tell rrdtool which archive to use?  
Can I use this to store multiple CM entries per RRD with 1 CM == 1 RRA 
(I don't think so but might as well ask)?

5. Any hooks for PHP?

Am I on track here, have I made a mistake or am I totally way off?

Marlon Yu

Unsubscribe mailto:rrd-users-request at list.ee.ethz.ch?subject=unsubscribe
Help        mailto:rrd-users-request at list.ee.ethz.ch?subject=help
Archive     http://www.ee.ethz.ch/~slist/rrd-users
WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi

More information about the rrd-users mailing list