luci-app-statistics: add new memory plugin option
authorFlorian Eckert <fe@dev.tdt.de>
Fri, 13 Sep 2019 10:51:13 +0000 (12:51 +0200)
committerFlorian Eckert <fe@dev.tdt.de>
Fri, 13 Sep 2019 10:59:04 +0000 (12:59 +0200)
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/memory.lua
applications/luci-app-statistics/luasrc/statistics/plugins/memory.lua
applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/memory.lua

index fa677b8d127d2d66d2554ddd975d9f23761fe3c3..e5f3360c05045bc6aae2b4f128b24c2cffce80d8 100644 (file)
@@ -10,4 +10,18 @@ s = m:section( NamedSection, "collectd_memory", "luci_statistics" )
 enable = s:option( Flag, "enable", translate("Enable this plugin") )
 enable.default = 0
 
+-- collectd_memory.valuesabsolute (ValuesAbsolute)
+valuespercentage = s:option( Flag, "ValuesAbsolute",
+       translate("Absolute values"),
+       translate("When set to true, we request absolute values"))
+valuespercentage.default = 1
+valuespercentage:depends( "enable", 1 )
+
+-- collectd_memory.valuespercentage (ValuesPercentage)
+valuespercentage = s:option( Flag, "ValuesPercentage",
+       translate("Percent values"),
+       translate("When set to true, we request percentage values"))
+valuespercentage.default = 0
+valuespercentage:depends( "enable", 1 )
+
 return m
index 8dee2dafcdef2c94e06dea8766ab23b436a692c8..9ad1b3f88d63f3c6b592e6952b8db47f9904d477 100644 (file)
@@ -1,7 +1,7 @@
 return {
-       legend = { 
-               { },
+       legend = {
                { },
+               { "ValuesPercentage", "ValuesAbsolute" },
                { }
        },
        label = _("Memory"),
index b05d31dc02281d52e99e6a9acdb0366e21285263..53cfc8f5534933ba0ce4735d1bbca35689672d47 100644 (file)
@@ -16,24 +16,92 @@ function item()
 end
 
 function rrdargs( graph, plugin, plugin_instance, dtype )
+       local p = {}
 
-       return {
+       local memory = {
                title = "%H: Memory usage",
                vlabel = "MB",
                number_format = "%5.1lf%s",
                y_min = "0",
                alt_autoscale_max = true,
                data = {
-                       instances = { 
-                               memory = { "free", "buffered", "cached", "used" }
+                       instances = {
+                               memory = {
+                                       "free",
+                                       "buffered",
+                                       "cached",
+                                       "used"
+                               }
                        },
 
                        options = {
-                               memory_buffered = { color = "0000ff", title = "Buffered" },
-                               memory_cached   = { color = "ff00ff", title = "Cached" },
-                               memory_used     = { color = "ff0000", title = "Used" },
-                               memory_free     = { color = "00ff00", title = "Free" }
+                               memory_buffered = {
+                                       color = "0000ff",
+                                       title = "Buffered"
+                               },
+                               memory_cached = {
+                                       color = "ff00ff",
+                                       title = "Cached"
+                               },
+                               memory_used = {
+                                       color = "ff0000",
+                                       title = "Used"
+                               },
+                               memory_free = {
+                                       color = "00ff00",
+                                       title = "Free"
+                               }
                        }
                }
        }
+
+       local percent = {
+               title = "%H: Memory usage",
+               vlabel = "Percent",
+               number_format = "%5.1lf%%",
+               y_min = "0",
+               alt_autoscale_max = true,
+               data = {
+                       instances = {
+                               percent = {
+                                       "free",
+                                       "buffered",
+                                       "cached",
+                                       "used"
+                               }
+                       },
+                       options = {
+                               percent_buffered = {
+                                       color = "0000ff",
+                                       title = "Buffered"
+                               },
+                               percent_cached = {
+                                       color = "ff00ff",
+                                       title = "Cached"
+                               },
+                               percent_used = {
+                                       color = "ff0000",
+                                       title = "Used"
+                               },
+                               percent_free = {
+                                       color = "00ff00",
+                                       title = "Free"
+                               }
+                       }
+               }
+       }
+
+       local types = graph.tree:data_types( plugin, plugin_instance )
+
+       for _, t in ipairs(types) do
+               if t == "percent" then
+                       p[#p+1] = percent
+               end
+
+               if t == "memory" then
+                       p[#p+1] = memory
+               end
+       end
+
+       return p
 end