diff --git a/doc/rrdgraph_rpn.txt b/doc/rrdgraph_rpn.txt
index 3c55e87a2a6e3228f7daa885a1964b8dd0d3d708..ae5cfdcb386dcf52b20093d6db7578e21580d540 100644 (file)
--- a/doc/rrdgraph_rpn.txt
+++ b/doc/rrdgraph_rpn.txt
Pop two elements from the stack, compare them for the selected
condition and return 1 for true or 0 for false. Comparing an
- _\bu_\bn_\bk_\bn_\bo_\bw_\bn or an _\bi_\bn_\bf_\bi_\bn_\bi_\bt_\be value will always result in 0 (false).
+ _\bu_\bn_\bk_\bn_\bo_\bw_\bn or an _\bi_\bn_\bf_\bi_\bn_\bi_\bt_\be value will result in _\bu_\bn_\bk_\bn_\bo_\bw_\bn returned ...
+ which will also be treated as false by the I\bIF\bF call.
U\bUN\bN,\b, I\bIS\bSI\bIN\bNF\bF
The TRENDNAN operation ignores all NAN-values in a sliding window
and computes the average of the remaining values.
+ P\bPR\bRE\bED\bDI\bIC\bCT\bT,\b, P\bPR\bRE\bED\bDI\bIC\bCT\bTS\bSI\bIG\bGM\bMA\bA
+
+ Create a "sliding window" average/sigma of another data series,
+ that also shifts the data series by given amounts of of time as
+ well
+
+ Usage - explicit stating shifts: CDEF:predict=<shift n>,...,<shift
+ 1>,n,<window>,x,PREDICT CDEF:sigma=<shift n>,...,<shift
+ 1>,n,<window>,x,PREDICTSIGMA
+
+ Usage - shifts defined as a base shift and a number of time this is
+ applied CDEF:predict=<shift multiplier>,-n,<window>,x,PREDICT
+ CDEF:sigma=<shift multiplier>,-n,<window>,x,PREDICTSIGMA
+
+ Example: CDEF:predict=172800,86400,2,1800,x,PREDICT
+
+ This will create a half-hour (1800 second) sliding window
+ average/sigma of x, that average is essentially computed as shown
+ here:
+
+ +---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!--->
+ now
+ shift 1 t0
+ <----------------------->
+ window
+ <--------------->
+ shift 2
+ <----------------------------------------------->
+ window
+ <--------------->
+ shift 1 t1
+ <----------------------->
+ window
+ <--------------->
+ shift 2
+ <----------------------------------------------->
+ window
+ <--------------->
+
+ Value at sample (t0) will be the average between (t0-shift1-window) and (t0-shift1)
+ and between (t0-shift2-window) and (t0-shift2)
+ Value at sample (t1) will be the average between (t1-shift1-window) and (t1-shift1)
+ and between (t1-shift2-window) and (t1-shift2)
+
+ The function is by design NAN-safe. This also allows for
+ extrapolation into the future (say a few days) - you may need to
+ define the data series whit the optional start= parameter, so that
+ the source data series has enough data to provide prediction also
+ at the beginning of a graph...
+
+ Here an example, that will create a 10 day graph that also shows
+ the prediction 3 days into the future with its uncertainty value
+ (as defined by avg+-4*sigma) This also shows if the prediction is
+ exceeded at a certain point.
+
+ rrdtool graph image.png --imgformat=PNG \
+ --start=-7days --end=+3days --width=1000 --height=200
+ --alt-autoscale-max \
+ DEF:value=value.rrd:value:AVERAGE:start=-14days \
+ LINE1:value#ff0000:value \
+ CDEF:predict=86400,-7,1800,value,PREDICT \
+ CDEF:sigma=86400,-7,1800,value,PREDICTSIGMA \
+ CDEF:upper=predict,sigma,3,*,+ \
+ CDEF:lower=predict,sigma,3,*,- \
+ LINE1:predict#00ff00:prediction \
+ LINE1:upper#0000ff:upper\ certainty\ limit \
+ LINE1:lower#0000ff:lower\ certainty\ limit \
+ CDEF:exceeds=value,UN,0,value,lower,upper,LIMIT,UN,IF \
+ TICK:exceeds#aa000080:1
+
+ Note: Experience has shown that a factor between 3 and 5 to scale
+ sigma is a good discriminator to detect abnormal behavior. This
+ obviously depends also on the type of data and how "noisy" the data
+ series is.
+
+ This prediction can only be used for short term extrapolations -
+ say a few days into the future-
+
Special values
U\bUN\bNK\bKN\bN
Example: "VDEF:stdev=mydata,STDEV"
LAST, FIRST
- Return the last/first value including its time. The time for FIRST
- is actually the start of the corresponding interval, whereas LAST
- returns the end of the corresponding interval.
+ Return the last/first non-nan or infinite value for the selected
+ data stream, including its timestamp.
Example: "VDEF:first=mydata,FIRST"
TOTAL
Returns the rate from each defined time slot multiplied with the
- step size. This can, for instance, return total bytes transfered
+ step size. This can, for instance, return total bytes transferred
when you have logged bytes per second. The time component returns
the number of seconds.
Example: "VDEF:total=mydata,TOTAL"
- PERCENT
+ PERCENT, PERCENTNAN
This should follow a D\bDE\bEF\bF or C\bCD\bDE\bEF\bF _\bv_\bn_\ba_\bm_\be. The _\bv_\bn_\ba_\bm_\be is popped,
another number is popped which is a certain percentage (0..100).
The data set is then sorted and the value returned is chosen such
that _\bp_\be_\br_\bc_\be_\bn_\bt_\ba_\bg_\be percent of the values is lower or equal than the
- result. _\bU_\bn_\bk_\bn_\bo_\bw_\bn values are considered lower than any finite number
- for this purpose so if this operator returns an _\bu_\bn_\bk_\bn_\bo_\bw_\bn you have
- quite a lot of them in your data. I\bIn\bnf\bfinite numbers are lesser, or
- more, than the finite numbers and are always more than the _\bU_\bn_\bk_\bn_\bo_\bw_\bn
- numbers. (NaN < -INF < finite values < INF)
+ result. For PERCENTNAN _\bU_\bn_\bk_\bn_\bo_\bw_\bn values are ignored, but for PERCENT
+ _\bU_\bn_\bk_\bn_\bo_\bw_\bn values are considered lower than any finite number for this
+ purpose so if this operator returns an _\bu_\bn_\bk_\bn_\bo_\bw_\bn you have quite a lot
+ of them in your data. I\bIn\bnf\bfinite numbers are lesser, or more, than
+ the finite numbers and are always more than the _\bU_\bn_\bk_\bn_\bo_\bw_\bn numbers.
+ (NaN < -INF < finite values < INF)
Example: "VDEF:perc95=mydata,95,PERCENT"
+ "VDEF:percnan95=mydata,95,PERCENTNAN"
LSLSLOPE, LSLINT, LSLCORREL
Return the parameters for a L\bLeast S\bSquares L\bLine _\b(_\by _\b= _\bm_\bx _\b+_\bb_\b) which
-1.3.8 2009-02-21 RRDGRAPH_RPN(1)
+1.4.8 2013-05-23 RRDGRAPH_RPN(1)