[rrd-users] Creating a XmR control chart.
John P. Rouillard
rouilj at cs.umb.edu
Tue Jan 20 22:06:37 CET 2009
Hi folks:
I am trying to get rrdtool to produce an XmR control chart.
For example:
http://gunston.gmu.edu/708/XmR.asp
The data is throughput data measured in Kbits/sec that is gathered
once per hour. So given:
bw1
bw2
bw3
bw4
bw5
bw6
I need to calculate:
the mean of the bw data (bw1+...+bwN)/N
the mean of the absolute values of the pairwise differences:
(|bw1-bw2|, |bw2-bw3|...,|bwN-1 - bwN|)/(N-1)
I was trying to use:
rrdtool create test.rrd --step 3600 \
DS:bandwidth:GAUGE:7200:0:U \
DS:mR:COMPUTE:PREV(bandwidth),bandwidth,-,DUP,0,LT,-1,1,IF,* \
RRA:LAST:0.5:1:712
to record the bandwidth, and the absolute value of the pairwise
differences in bandwidth. I am using rrdtool 1.2, so I don't have the
ABS function hence the '-1, 1, IF *'. Then an "rrdtool update
N:bandwidth" would generate all the values so I can graph them using:
rrdtool DEF=bandwidth=test.rrd:bandwidth:LAST \
VDEF=centerline=bandwidth,AVERAGE \
VDEF=mRbar=mR,AVERAGE \
CDEF=UCL=centerline,2.66,mRbar,*,+ \
CDEF=LCL=centerline,2.66,mRbar,*,- \
LINE:UCL:UCL \
LINE:LCL:LCL \
LINE:bandwidth:bandwidth
to get the bandwidth data points graphed between it's control limits.
(For the sticklers, LCL needs to be set to 0 if it is < 0 and that can
be done with a DUP,0,GT,1,0,if,*.)
But this method doesn't work because you can't use PREV() in a compute
DS 8-(.
So I was thinking of using:
rrdtool create test.rrd --step 3600 \
DS:bandwidth:GAUGE:7200:0:U \
DS:mR:DERIVE:7200:0:U \
RRA:AVERAGE:0.5:1:712
and using 'rrdtool update N:bandwidth:bandwidth'. But this gives me
positive and negative values in mR, and I need only positive values.
So does anybody have a recipe for a standard XmR chart using rrdtool?
--
-- rouilj
John Rouillard
===========================================================================
My employers don't acknowledge my existence much less my opinions.
More information about the rrd-users
mailing list