From 543117cb003c6938011789c7da3519a13f299e1c Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Fri, 26 Feb 2021 17:22:47 +0100 Subject: [PATCH] router.html: add support for available memory Add support for showing available memory if included in the alfred dataset. This might be more helpful than free memory in several cases. While at it, tidy up and improve the JS code for the graph. It also shows the latest values in the legend now. Signed-off-by: Adrian Schmutzler --- ffmap/routertools.py | 2 ++ ffmap/web/application.py | 1 + ffmap/web/static/js/graph.js | 50 ++++++++++++++++++++++++++++-------- 3 files changed, 42 insertions(+), 11 deletions(-) diff --git a/ffmap/routertools.py b/ffmap/routertools.py index 26aed9e..f83c9e4 100644 --- a/ffmap/routertools.py +++ b/ffmap/routertools.py @@ -515,6 +515,7 @@ def new_router_stats(infdict, router_id, uptime, router_update, statstime): "time": statstime, "fields": { "sys_memfree": router_update["memory"]['free'], + "sys_memavail": router_update["memory"]['available'], "sys_membuff": router_update["memory"]['buffering'], "sys_memcache": router_update["memory"]['caching'], "loadavg": float(router_update["sys_loadavg"]), @@ -661,6 +662,7 @@ def parse_nodewatcher_xml(xml,statstime): "sys_uptime": int(evalxpathfloat(tree,"/data/system_data/uptime/text()")), "memory": { "free": evalxpathint(tree,"/data/system_data/memory_free/text()"), + "available": evalxpathint(tree,"/data/system_data/memory_available/text()"), "buffering": evalxpathint(tree,"/data/system_data/memory_buffering/text()"), "caching": evalxpathint(tree,"/data/system_data/memory_caching/text()"), }, diff --git a/ffmap/web/application.py b/ffmap/web/application.py index b55c45d..f453143 100755 --- a/ffmap/web/application.py +++ b/ffmap/web/application.py @@ -285,6 +285,7 @@ def router_info(dbid): "mb": s["sys_membuff"], "mc": s["sys_memcache"], "mf": s["sys_memfree"], + "ma": s["sys_memavail"], "pr": s["sys_procrun"], "pt": s["sys_proctot"] }) diff --git a/ffmap/web/static/js/graph.js b/ffmap/web/static/js/graph.js index cc9cc63..55f80b1 100644 --- a/ffmap/web/static/js/graph.js +++ b/ffmap/web/static/js/graph.js @@ -20,6 +20,9 @@ function legendFormatter(label, series) { return label; } +function appendMiB(value, fixed=1) { + return " (" + (value/1024).toFixed(fixed) + " M)"; +} function setup_plot_zoom(plot, pdata, num_data_points) { plot.getPlaceholder().bind("plotselected", function (event, ranges) { @@ -184,18 +187,42 @@ function gw_graph(gws) { function memory_graph() { var memstat = $("#memstat"); - var free = [], caching = [], buffering = []; + var free = [], caching = [], buffering = [], available = []; var len, i; + var label_free = "free"; + var label_avail = "available"; + var label_cache = "cache"; + var label_buff = "buffer"; + for (len=router_stats.length, i=0; i