diff options
author | Jo-Philipp Wich <jo@mein.io> | 2018-11-17 14:54:43 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2018-11-17 14:57:08 +0100 |
commit | e5f9e3ff25418f4bea774a9bc748d24020725483 (patch) | |
tree | 790eac1834ee665cb5beb99c00df74cf8bac1ae4 /modules/luci-mod-status/luasrc/view/admin_status/connections.htm | |
parent | 93fdac8560f219d022f22784b43dced05f86210d (diff) |
luci-mod-status: fix average calculations
Calculate the average over the actual data and not over the entire timeframe.
Fixes #2301
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'modules/luci-mod-status/luasrc/view/admin_status/connections.htm')
-rw-r--r-- | modules/luci-mod-status/luasrc/view/admin_status/connections.htm | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/modules/luci-mod-status/luasrc/view/admin_status/connections.htm b/modules/luci-mod-status/luasrc/view/admin_status/connections.htm index 0a0db3be78..d9099aa078 100644 --- a/modules/luci-mod-status/luasrc/view/admin_status/connections.htm +++ b/modules/luci-mod-status/luasrc/view/admin_status/connections.htm @@ -1,5 +1,5 @@ <%# - Copyright 2010 Jo-Philipp Wich <jow@openwrt.org> + Copyright 2010-2018 Jo-Philipp Wich <jo@mein.io> Licensed to the public under the Apache License 2.0. -%> @@ -19,7 +19,7 @@ var step = 5; var data_wanted = Math.floor(width / step); - var data_fill = 0; + var data_fill = 1; var data_stamp = 0; var data_udp = [ ]; @@ -202,12 +202,15 @@ if (data[i][TIME] <= data_stamp) continue; + data_fill++; + data_udp.push(data[i][UDP]); data_tcp.push(data[i][TCP]); data_otr.push(data[i][OTHER]); } /* cut off outdated entries */ + data_fill = Math.min(data_fill, data_wanted); data_udp = data_udp.slice(data_udp.length - data_wanted, data_udp.length); data_tcp = data_tcp.slice(data_tcp.length - data_wanted, data_tcp.length); data_otr = data_otr.slice(data_otr.length - data_wanted, data_otr.length); @@ -223,20 +226,15 @@ data_tcp_peak = Math.max(data_tcp_peak, data_tcp[i]); data_otr_peak = Math.max(data_otr_peak, data_otr[i]); - if (i > 0) - { - data_udp_avg = (data_udp_avg + data_udp[i]) / 2; - data_tcp_avg = (data_tcp_avg + data_tcp[i]) / 2; - data_otr_avg = (data_otr_avg + data_otr[i]) / 2; - } - else - { - data_udp_avg = data_udp[i]; - data_tcp_avg = data_tcp[i]; - data_otr_avg = data_otr[i]; - } + data_udp_avg += data_udp[i]; + data_tcp_avg += data_tcp[i]; + data_otr_avg += data_otr[i]; } + data_udp_avg = data_udp_avg / data_fill; + data_tcp_avg = data_tcp_avg / data_fill; + data_otr_avg = data_otr_avg / data_fill; + /* remember current timestamp, calculate horizontal scale */ data_stamp = data[data.length-1][TIME]; data_scale = height / (data_max * 1.1); |