luci-statistics: add transform_rpn option to graphs, use it for nut battery life
authorJo-Philipp Wich <jow@openwrt.org>
Fri, 14 Dec 2012 13:27:43 +0000 (13:27 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Fri, 14 Dec 2012 13:27:43 +0000 (13:27 +0000)
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
applications/luci-statistics/luasrc/statistics/rrdtool.lua
applications/luci-statistics/luasrc/statistics/rrdtool/definitions/nut.lua

index 45deb85..e93ac06 100644 (file)
@@ -156,11 +156,14 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
 
                if not ds or ds:len() == 0 then ds = "value" end
 
 
                if not ds or ds:len() == 0 then ds = "value" end
 
-               _tif( _args, "DEF:%s_avg=%s:%s:AVERAGE", inst, rrd, ds )
+               _tif( _args, "DEF:%s_avg_raw=%s:%s:AVERAGE", inst, rrd, ds )
+               _tif( _args, "CDEF:%s_avg=%s_avg_raw,%s", inst, inst, source.transform_rpn )
 
                if not self.opts.rrasingle then
 
                if not self.opts.rrasingle then
-                       _tif( _args, "DEF:%s_min=%s:%s:MIN", inst, rrd, ds )
-                       _tif( _args, "DEF:%s_max=%s:%s:MAX", inst, rrd, ds )
+                       _tif( _args, "DEF:%s_min_raw=%s:%s:MIN", inst, rrd, ds )
+                       _tif( _args, "CDEF:%s_min=%s_min_raw,%s", inst, inst, source.transform_rpn )
+                       _tif( _args, "DEF:%s_max_raw=%s:%s:MAX", inst, rrd, ds )
+                       _tif( _args, "CDEF:%s_max=%s_max_raw,%s", inst, inst, source.transform_rpn )
                end
 
                _tif( _args, "CDEF:%s_nnl=%s_avg,UN,0,%s_avg,IF", inst, inst, inst )
                end
 
                _tif( _args, "CDEF:%s_nnl=%s_avg,UN,0,%s_avg,IF", inst, inst, inst )
@@ -403,6 +406,7 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
                                        flip     = dopts.flip    or false,
                                        total    = dopts.total   or false,
                                        overlay  = dopts.overlay or false,
                                        flip     = dopts.flip    or false,
                                        total    = dopts.total   or false,
                                        overlay  = dopts.overlay or false,
+                                       transform_rpn = dopts.transform_rpn or "0,+",
                                        noarea   = dopts.noarea  or false,
                                        title    = dopts.title   or nil,
                                        ds       = dsource,
                                        noarea   = dopts.noarea  or false,
                                        title    = dopts.title   or nil,
                                        ds       = dsource,
index 421c7a2..4072d4d 100644 (file)
@@ -86,7 +86,7 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
        local timeleft = {
                title = "%H: Time left on UPS \"%pi\"",
                vlabel = "Minutes",
        local timeleft = {
                title = "%H: Time left on UPS \"%pi\"",
                vlabel = "Minutes",
-               number_format = "%7lfm",
+               number_format = "%.1lfm",
                data = {
                        sources = {
                                timeleft = { "timeleft" }
                data = {
                        sources = {
                                timeleft = { "timeleft" }
@@ -95,7 +95,7 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
                                timeleft = { "battery" }
                        },
                        options = {
                                timeleft = { "battery" }
                        },
                        options = {
-                               timeleft_battery = { color = "0000ff", title = "Time left"}
+                               timeleft_battery = { color = "0000ff", title = "Time left", transform_rpn = "60,/" }
                        }
                }
        }
                        }
                }
        }