rrasingle = s:option( Flag, "RRASingle",
translate("Only create average RRAs"), translate("reduces rrd size") )
rrasingle.default = true
-rrasingle.rmempty = true
-rrasingle.optional = true
rrasingle:depends( "enable", 1 )
+-- collectd_rrdtool.rramax (RRAMax)
+rramax = s:option( Flag, "RRAMax",
+ translate("Show max values instead of averages"),
+ translate("Max values for a period can be used instead of averages when not using 'only average RRAs'") )
+rramax.default = false
+rramax.rmempty = true
+rramax:depends( "RRASingle", 0 )
+
-- collectd_rrdtool.rratimespans (RRATimespan)
rratimespans = s:option( Value, "RRATimespans",
translate("Stored timespans"), translate("seconds; multiple separated by space") )
-- options
opts.timespan = timespan or sections.rrdtool.default_timespan or 900
opts.rrasingle = opts.rrasingle or ( sections.collectd_rrdtool.RRASingle == "1" )
+ opts.rramax = opts.rramax or ( sections.collectd_rrdtool.RRAMax == "1" )
opts.host = opts.host or sections.collectd.Hostname or luci.sys.hostname()
opts.width = opts.width or sections.rrdtool.image_width or 400
opts.rrdpath = opts.rrdpath or sections.collectd_rrdtool.DataDir or "/tmp/rrd"
-- is first source in stack or overlay source: source_stk = source_nnl
if not prev or source.overlay then
- if self.opts.rrasingle then
+ if self.opts.rrasingle or not self.opts.rramax then
-- create cdef statement for cumulative stack (no NaNs) and also
-- for display (preserving NaN where no points should be displayed)
_tif( _args, "CDEF:%s_stk=%s_nnl", source.sname, source.sname )
-- is subsequent source without overlay: source_stk = source_nnl + previous_stk
else
- if self.opts.rrasingle then
+ if self.opts.rrasingle or not self.opts.rramax then
-- create cdef statement
_tif( _args, "CDEF:%s_stk=%s_nnl,%s_stk,+", source.sname, source.sname, prev )
_tif( _args, "CDEF:%s_plot=%s_avg,%s_stk,+", source.sname, source.sname, prev )