luci-app-statistics: Diskfree graph show also percent view
authorFlorian Eckert <fe@dev.tdt.de>
Thu, 7 Mar 2019 09:26:12 +0000 (10:26 +0100)
committerFlorian Eckert <fe@dev.tdt.de>
Thu, 7 Mar 2019 14:16:17 +0000 (15:16 +0100)
The Diskfree (df) plugin could also collect the values in percent if the
option "ValuesPercentage" is set in the collectd configuration.
This commit will check if "df_complex" / "percent_bytes" or both are
collected by collectd and so will show the corrsponding graph.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/df.lua

index b5633c15ffa842545d14ab014c8af7ca75a72079..7a69e85ee585c4df4f4ade28e754bd2e7c28d25b 100644 (file)
@@ -5,7 +5,7 @@ module("luci.statistics.rrdtool.definitions.df", package.seeall)
 
 function rrdargs( graph, plugin, plugin_instance, dtype )
 
-       return {
+       local df_complex = {
                title = "%H: Disk space usage on %pi",
                vlabel = "Bytes",
                number_format = "%5.1lf%sB",
@@ -36,4 +36,51 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
                        }
                }
        }
+
+       local percent_bytes = {
+               title = "%H: Disk space usage on %pi",
+               vlabel = "Percent",
+               number_format = "%5.2lf %%",
+
+               data = {
+                       instances = {
+                               percent_bytes = { "free", "used", "reserved" }
+                       },
+
+                       options = {
+                               percent_bytes_free = {
+                                       color = "00ff00",
+                                       overlay = false,
+                                       title = "free"
+                               },
+
+                               percent_bytes_used = {
+                                       color = "ff0000",
+                                       overlay = false,
+                                       title = "used"
+                               },
+
+                               percent_bytes_reserved = {
+                                       color = "0000ff",
+                                       overlay = false,
+                                       title = "reserved"
+                               }
+                       }
+               }
+       }
+
+       local types = graph.tree:data_types( plugin, plugin_instance )
+
+       local p = {}
+       for _, t in ipairs(types) do
+               if t == "percent_bytes" then
+                       p[#p+1] = percent_bytes
+               end
+
+               if t == "df_complex" then
+                       p[#p+1] = df_complex
+               end
+       end
+
+       return p
 end