summaryrefslogtreecommitdiffhomepage
path: root/applications
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-12-05 14:09:24 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-12-05 14:09:24 +0000
commite046455389f1030accf1341a6d75992c9b0a9447 (patch)
tree45b2e4589a57df3f79356ef0fd2f755c56d8095c /applications
parent239672e76b6005c300682f467be4855a8b7fe648 (diff)
applications/luci-statistics: rework handling of index and detail graphs
Instead of coding the display logic into the graph models, simply annotate graph models with .detail = true/false and let the renderer decide which to pick when.
Diffstat (limited to 'applications')
-rw-r--r--applications/luci-statistics/luasrc/statistics/rrdtool.lua22
-rw-r--r--applications/luci-statistics/luasrc/statistics/rrdtool/definitions/disk.lua2
-rw-r--r--applications/luci-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua8
-rw-r--r--applications/luci-statistics/luasrc/statistics/rrdtool/definitions/olsrd.lua117
-rw-r--r--applications/luci-statistics/luasrc/statistics/rrdtool/definitions/ping.lua2
-rw-r--r--applications/luci-statistics/luasrc/statistics/rrdtool/definitions/processes.lua119
-rw-r--r--applications/luci-statistics/luasrc/statistics/rrdtool/definitions/tcpconns.lua5
7 files changed, 136 insertions, 139 deletions
diff --git a/applications/luci-statistics/luasrc/statistics/rrdtool.lua b/applications/luci-statistics/luasrc/statistics/rrdtool.lua
index 871e055d9d..b540dd15f0 100644
--- a/applications/luci-statistics/luasrc/statistics/rrdtool.lua
+++ b/applications/luci-statistics/luasrc/statistics/rrdtool.lua
@@ -513,20 +513,20 @@ function Graph.render( self, plugin, plugin_instance, is_index )
-- get diagram definitions
for i, opts in ipairs( self:_forcelol( def.rrdargs( self, plugin, plugin_instance, nil, is_index ) ) ) do
+ if not is_index or not opts.detail then
+ _images[i] = { }
- _images[i] = { }
+ -- get diagram definition instances
+ local diagrams = self:_generic( opts, plugin, plugin_instance, nil, i )
- -- get diagram definition instances
- local diagrams = self:_generic( opts, plugin, plugin_instance, nil, i )
+ -- render all diagrams
+ for j, def in ipairs( diagrams ) do
+ -- remember image
+ _images[i][j] = def[1]
- -- render all diagrams
- for j, def in ipairs( diagrams ) do
-
- -- remember image
- _images[i][j] = def[1]
-
- -- exec
- self:_rrdtool( def )
+ -- exec
+ self:_rrdtool( def )
+ end
end
end
diff --git a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/disk.lua b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/disk.lua
index b42faac42b..ebc37ef3a4 100644
--- a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/disk.lua
+++ b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/disk.lua
@@ -49,6 +49,8 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
vlabel = "Bytes/s",
number_format = "%5.1lf%sB/s",
+ detail = true,
+
data = {
types = { "disk_octets" },
sources = {
diff --git a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua
index 0b4c6c21b1..9313952518 100644
--- a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua
+++ b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua
@@ -53,7 +53,7 @@ function rrdargs( graph, plugin, plugin_instance )
--
local packets = {
title = "%H: Netlink - Packets on %pi",
- vlabel = "Packets/s",
+ vlabel = "Packets/s", detail = true,
-- diagram data description
data = {
@@ -123,7 +123,7 @@ function rrdargs( graph, plugin, plugin_instance )
--
local multicast = {
title = "%H: Netlink - Multicast on %pi",
- vlabel = "Packets/s",
+ vlabel = "Packets/s", detail = true,
-- diagram data description
data = {
@@ -147,7 +147,7 @@ function rrdargs( graph, plugin, plugin_instance )
--
local collisions = {
title = "%H: Netlink - Collisions on %pi",
- vlabel = "Collisions/s",
+ vlabel = "Collisions/s", detail = true,
-- diagram data description
data = {
@@ -171,7 +171,7 @@ function rrdargs( graph, plugin, plugin_instance )
--
local errors = {
title = "%H: Netlink - Errors on %pi",
- vlabel = "Errors/s",
+ vlabel = "Errors/s", detail = true,
-- diagram data description
data = {
diff --git a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/olsrd.lua b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/olsrd.lua
index 0ba38357c5..3ee39102e6 100644
--- a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/olsrd.lua
+++ b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/olsrd.lua
@@ -15,8 +15,7 @@ module("luci.statistics.rrdtool.definitions.olsrd", package.seeall)
local tree = luci.statistics.datatree.Instance()
-function rrdargs( graph, plugin, plugin_instance, dtype, is_index )
-
+function rrdargs( graph, plugin, plugin_instance, dtype )
local g = { }
if plugin_instance == "routes" then
@@ -35,33 +34,31 @@ function rrdargs( graph, plugin, plugin_instance, dtype, is_index )
}
}
- if not is_index then
- g[#g+1] = {
- title = "%H: Average route ETX", vlabel = "ETX",
- number_format = "%5.1lf",data = {
- instances = { "average" }, -- falls es irgendwann mal welche pro ip gibt, wie bei links, dann werden die hier excludiert
- types = { "route_etx" },
- options = {
- route_etx = {
- title = "Average route ETX"
- }
+ g[#g+1] = {
+ title = "%H: Average route ETX", vlabel = "ETX", detail = true,
+ number_format = "%5.1lf",data = {
+ instances = { "average" }, -- falls es irgendwann mal welche pro ip gibt, wie bei links, dann werden die hier excludiert
+ types = { "route_etx" },
+ options = {
+ route_etx = {
+ title = "Average route ETX"
}
}
}
+ }
- g[#g+1] = {
- title = "%H: Average route metric", vlabel = "metric",
- number_format = "%5.1lf", data = {
- instances = { "average" }, -- falls es irgendwann mal welche pro ip gibt, wie bei links, dann werden die hier excludiert
- types = { "route_metric" },
- options = {
- route_metric = {
- title = "Average route metric"
- }
+ g[#g+1] = {
+ title = "%H: Average route metric", vlabel = "metric", detail = true,
+ number_format = "%5.1lf", data = {
+ instances = { "average" }, -- falls es irgendwann mal welche pro ip gibt, wie bei links, dann werden die hier excludiert
+ types = { "route_metric" },
+ options = {
+ route_metric = {
+ title = "Average route metric"
}
}
}
- end
+ }
elseif plugin_instance == "links" then
@@ -80,40 +77,39 @@ function rrdargs( graph, plugin, plugin_instance, dtype, is_index )
}
}
- if not is_index then
- local instances = tree:data_instances(plugin, plugin_instance, "signal_quality")
- table.sort(instances)
+ local instances = tree:data_instances(plugin, plugin_instance, "signal_quality")
+ table.sort(instances)
- -- define one diagram per host, containing the rx and lq values
- local i
- for i = 1, #instances, 2 do
- local dsn1 = "signal_quality_%s_value" % instances[i]:gsub("[^%w]+", "_")
- local dsn2 = "signal_quality_%s_value" % instances[i+1]:gsub("[^%w]+", "_")
- local host = instances[i]:match("^[^%-]+%-([^%-]+)%-.+")
+ -- define one diagram per host, containing the rx and lq values
+ local i
+ for i = 1, #instances, 2 do
+ local dsn1 = "signal_quality_%s_value" % instances[i]:gsub("[^%w]+", "_")
+ local dsn2 = "signal_quality_%s_value" % instances[i+1]:gsub("[^%w]+", "_")
+ local host = instances[i]:match("^[^%-]+%-([^%-]+)%-.+")
- g[#g+1] = {
+ g[#g+1] = {
title = "%H: Signal Quality" .. " (" .. (host or "avg") ..")", vlabel = "ETX",
- number_format = "%5.2lf", data = {
- types = { "signal_quality" },
+ number_format = "%5.2lf", detail = true,
+ data = {
+ types = { "signal_quality" },
- instances = {
- signal_quality = { instances[i], instances[i+1] },
- },
+ instances = {
+ signal_quality = { instances[i], instances[i+1] },
+ },
- options = {
- [dsn1] = {
- color = "00ff00",
- title = "LQ (%s)" % (host or "avg"),
- },
- [dsn2] = {
- color = "0000ff",
- title = "NLQ (%s)" % (host or "avg"),
- flip = true
- }
+ options = {
+ [dsn1] = {
+ color = "00ff00",
+ title = "LQ (%s)" % (host or "avg"),
+ },
+ [dsn2] = {
+ color = "0000ff",
+ title = "NLQ (%s)" % (host or "avg"),
+ flip = true
}
}
}
- end
+ }
end
elseif plugin_instance == "topology" then
@@ -124,7 +120,7 @@ function rrdargs( graph, plugin, plugin_instance, dtype, is_index )
instances = { "" },
types = { "links" },
options = {
- links = { -- or: links__value is aber egal weils eh nur eines davon gibt
+ links = {
color = "0000ff",
title = "Total number of links"
}
@@ -132,21 +128,20 @@ function rrdargs( graph, plugin, plugin_instance, dtype, is_index )
}
}
- if not is_index then
- g[#g+1] = {
- title= "%H: Average signal quality", vlabel = "n",
- number_format = "%5.2lf", data = {
- instances = { "average" }, -- exclude possible per-ip stuff
- types = { "signal_quality" },
- options = {
- signal_quality = {
- color = "0000ff",
- title = "Average signal quality"
- }
+ g[#g+1] = {
+ title= "%H: Average signal quality", vlabel = "n",
+ number_format = "%5.2lf", detail = true,
+ data = {
+ instances = { "average" }, -- exclude possible per-ip stuff
+ types = { "signal_quality" },
+ options = {
+ signal_quality = {
+ color = "0000ff",
+ title = "Average signal quality"
}
}
}
- end
+ }
end
return g
diff --git a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/ping.lua b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/ping.lua
index 3b77cf1408..5707f3aba8 100644
--- a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/ping.lua
+++ b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/ping.lua
@@ -15,7 +15,7 @@ $Id: ping.lua 6810 2011-01-29 03:33:48Z jow $
module("luci.statistics.rrdtool.definitions.ping", package.seeall)
-function rrdargs( graph, plugin, plugin_instance, dtype, is_index )
+function rrdargs( graph, plugin, plugin_instance, dtype )
return {
-- Ping roundtrip time
{ title = "%H: ICMP Round Trip Time", vlabel = "ms",
diff --git a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/processes.lua b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/processes.lua
index fcbb982554..6f83c8e283 100644
--- a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/processes.lua
+++ b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/processes.lua
@@ -15,10 +15,10 @@ $Id$
module("luci.statistics.rrdtool.definitions.processes", package.seeall)
-function rrdargs( graph, plugin, plugin_instance, dtype, is_index )
+function rrdargs( graph, plugin, plugin_instance, dtype )
- if is_index then
- return {
+ return {
+ {
title = "%H: Processes",
vlabel = "Processes/s",
data = {
@@ -37,73 +37,74 @@ function rrdargs( graph, plugin, plugin_instance, dtype, is_index )
ps_state_zombies = { color = "ff0000" }
}
}
- }
- else
- return {
- {
- title = "%H: CPU time used by %pi",
- vlabel = "Jiffies",
- data = {
- sources = {
- ps_cputime = { "syst", "user" }
- },
+ },
- options = {
- ps_cputime__user = {
- color = "0000ff",
- overlay = true
- },
+ {
+ title = "%H: CPU time used by %pi",
+ vlabel = "Jiffies",
+ data = {
+ sources = {
+ ps_cputime = { "syst", "user" }
+ },
- ps_cputime__syst = {
- color = "ff0000",
- overlay = true
- }
- }
- }
- },
-
- {
- title = "%H: Threads and processes belonging to %pi",
- vlabel = "Count",
- data = {
- sources = {
- ps_count = { "threads", "processes" }
+ options = {
+ ps_cputime__user = {
+ color = "0000ff",
+ overlay = true
},
- options = {
- ps_count__threads = { color = "00ff00" },
- ps_count__processes = { color = "0000bb" }
+ ps_cputime__syst = {
+ color = "ff0000",
+ overlay = true
}
}
- },
-
- {
- title = "%H: Page faults in %pi",
- vlabel = "Pagefaults",
- data = {
- sources = {
- ps_pagefaults = { "minflt", "majflt" }
- },
+ }
+ },
- options = {
- ps_pagefaults__minflt = { color = "ff0000" },
- ps_pagefaults__majflt = { color = "ff5500" }
- }
+ {
+ title = "%H: Threads and processes belonging to %pi",
+ vlabel = "Count",
+ detail = true,
+ data = {
+ sources = {
+ ps_count = { "threads", "processes" }
+ },
+
+ options = {
+ ps_count__threads = { color = "00ff00" },
+ ps_count__processes = { color = "0000bb" }
}
- },
+ }
+ },
- {
- title = "%H: Virtual memory size of %pi",
- vlabel = "Bytes",
- number_format = "%5.1lf%sB",
- data = {
- types = { "ps_rss" },
+ {
+ title = "%H: Page faults in %pi",
+ vlabel = "Pagefaults",
+ detail = true,
+ data = {
+ sources = {
+ ps_pagefaults = { "minflt", "majflt" }
+ },
- options = {
- ps_rss = { color = "0000ff" }
- }
+ options = {
+ ps_pagefaults__minflt = { color = "ff0000" },
+ ps_pagefaults__majflt = { color = "ff5500" }
+ }
+ }
+ },
+
+ {
+ title = "%H: Virtual memory size of %pi",
+ vlabel = "Bytes",
+ detail = true,
+ number_format = "%5.1lf%sB",
+ data = {
+ types = { "ps_rss" },
+
+ options = {
+ ps_rss = { color = "0000ff" }
}
}
}
- end
+ }
end
diff --git a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/tcpconns.lua b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/tcpconns.lua
index 4e00cbed0b..4f1c221f9b 100644
--- a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/tcpconns.lua
+++ b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/tcpconns.lua
@@ -28,9 +28,8 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
"LAST_ACK", "TIME_WAIT", "CLOSING", "CLOSE_WAIT",
"CLOSED", "FIN_WAIT1", "FIN_WAIT2"
},
- options = { for k, v in (tcp_connections) do
- v = { title = "%di", noarea = true }
- end
+ options = {
+ load__ESTABLISHED = { title = "%di", noarea = true }
}
}
}