luci-app-statistics: option for max/avg data when not rrasingle
Introduce option that enables the user to select max values
instead of averages for graphs if the user has disabled RRAsingle.
The option defaults to average values, which have been the default
in Luci statistics.
Remove 'optional' from RRASingle, as it is a key option for statistics.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
(cherry picked from commit b213573682
)
This commit is contained in:
parent
d2054da3a2
commit
84083ce54d
2 changed files with 11 additions and 4 deletions
|
@ -47,10 +47,16 @@ heartbeat:depends( "enable", 1 )
|
||||||
rrasingle = s:option( Flag, "RRASingle",
|
rrasingle = s:option( Flag, "RRASingle",
|
||||||
translate("Only create average RRAs"), translate("reduces rrd size") )
|
translate("Only create average RRAs"), translate("reduces rrd size") )
|
||||||
rrasingle.default = true
|
rrasingle.default = true
|
||||||
rrasingle.rmempty = true
|
|
||||||
rrasingle.optional = true
|
|
||||||
rrasingle:depends( "enable", 1 )
|
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)
|
-- collectd_rrdtool.rratimespans (RRATimespan)
|
||||||
rratimespans = s:option( Value, "RRATimespans",
|
rratimespans = s:option( Value, "RRATimespans",
|
||||||
translate("Stored timespans"), translate("seconds; multiple separated by space") )
|
translate("Stored timespans"), translate("seconds; multiple separated by space") )
|
||||||
|
|
|
@ -25,6 +25,7 @@ function Graph.__init__( self, timespan, opts )
|
||||||
-- options
|
-- options
|
||||||
opts.timespan = timespan or sections.rrdtool.default_timespan or 900
|
opts.timespan = timespan or sections.rrdtool.default_timespan or 900
|
||||||
opts.rrasingle = opts.rrasingle or ( sections.collectd_rrdtool.RRASingle == "1" )
|
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.host = opts.host or sections.collectd.Hostname or luci.sys.hostname()
|
||||||
opts.width = opts.width or sections.rrdtool.image_width or 400
|
opts.width = opts.width or sections.rrdtool.image_width or 400
|
||||||
opts.rrdpath = opts.rrdpath or sections.collectd_rrdtool.DataDir or "/tmp/rrd"
|
opts.rrdpath = opts.rrdpath or sections.collectd_rrdtool.DataDir or "/tmp/rrd"
|
||||||
|
@ -171,7 +172,7 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
|
||||||
|
|
||||||
-- is first source in stack or overlay source: source_stk = source_nnl
|
-- is first source in stack or overlay source: source_stk = source_nnl
|
||||||
if not prev or source.overlay then
|
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
|
-- create cdef statement for cumulative stack (no NaNs) and also
|
||||||
-- for display (preserving NaN where no points should be displayed)
|
-- for display (preserving NaN where no points should be displayed)
|
||||||
_tif( _args, "CDEF:%s_stk=%s_nnl", source.sname, source.sname )
|
_tif( _args, "CDEF:%s_stk=%s_nnl", source.sname, source.sname )
|
||||||
|
@ -185,7 +186,7 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
|
||||||
|
|
||||||
-- is subsequent source without overlay: source_stk = source_nnl + previous_stk
|
-- is subsequent source without overlay: source_stk = source_nnl + previous_stk
|
||||||
else
|
else
|
||||||
if self.opts.rrasingle then
|
if self.opts.rrasingle or not self.opts.rramax then
|
||||||
-- create cdef statement
|
-- create cdef statement
|
||||||
_tif( _args, "CDEF:%s_stk=%s_nnl,%s_stk,+", source.sname, source.sname, prev )
|
_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 )
|
_tif( _args, "CDEF:%s_plot=%s_avg,%s_stk,+", source.sname, source.sname, prev )
|
||||||
|
|
Loading…
Reference in a new issue