diff options
author | jim-p <jimp@pfsense.org> | 2017-04-03 15:02:20 -0400 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2017-04-03 15:02:20 -0400 |
commit | 1db44fd9e124af96b8f95b9d492ab36653ea3630 (patch) | |
tree | 67fa3cd743668ef907d93fc42444e1bd9b1118dd /src | |
parent | f0875a7e6af8862ddd71b91b52194a96ff385d3b (diff) | |
parent | 2e56abd118b26e99a5c26c996d83e2fdf3f74423 (diff) | |
download | pfsense-1db44fd9e124af96b8f95b9d492ab36653ea3630.zip pfsense-1db44fd9e124af96b8f95b9d492ab36653ea3630.tar.gz |
Merge pull request #3673 from PiBa-NL/20170326_get_stats
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/local/www/includes/functions.inc.php | 18 | ||||
-rw-r--r-- | src/usr/local/www/widgets/widgets/system_information.widget.php | 81 |
2 files changed, 17 insertions, 82 deletions
diff --git a/src/usr/local/www/includes/functions.inc.php b/src/usr/local/www/includes/functions.inc.php index 3f727fb..91b0a13 100644 --- a/src/usr/local/www/includes/functions.inc.php +++ b/src/usr/local/www/includes/functions.inc.php @@ -33,12 +33,9 @@ function get_stats() { $stats['states'] = get_pfstate(); $stats['temp'] = get_temp(); $stats['datetime'] = update_date_time(); - $stats['interfacestatistics'] = get_interfacestats(); - $stats['interfacestatus'] = get_interfacestatus(); $stats['cpufreq'] = get_cpufreq(); $stats['load_average'] = get_load_average(); - $stats['mbuf'] = get_mbuf(); - $stats['mbufpercent'] = get_mbuf(true); + get_mbuf($stats['mbuf'], $stats['mbufpercent']); $stats['statepercent'] = get_pfstate(true); $stats = join("|", $stats); return $stats; @@ -144,18 +141,11 @@ function get_hwtype() { return; } -function get_mbuf($percent=false) { +function get_mbuf(&$mbuf, &$mbufpercent) { $mbufs_output=trim(`/usr/bin/netstat -mb | /usr/bin/grep "mbuf clusters in use" | /usr/bin/awk '{ print $1 }'`); list($mbufs_current, $mbufs_cache, $mbufs_total, $mbufs_max) = explode("/", $mbufs_output); - if ($percent) { - if ($mbufs_max > 0) { - return round(($mbufs_total / $mbufs_max) * 100, 0); - } else { - return "NA"; - } - } else { - return "{$mbufs_total}/{$mbufs_max}"; - } + $mbuf = "{$mbufs_total}/{$mbufs_max}"; + $mbufpercent = ($mbufs_max > 0) ? round(($mbufs_total / $mbufs_max) * 100, 0) : "NA"; } function get_temp() { diff --git a/src/usr/local/www/widgets/widgets/system_information.widget.php b/src/usr/local/www/widgets/widgets/system_information.widget.php index 789cef9..4de6d4a 100644 --- a/src/usr/local/www/widgets/widgets/system_information.widget.php +++ b/src/usr/local/www/widgets/widgets/system_information.widget.php @@ -312,8 +312,7 @@ $rows_displayed = false; <th><?=gettext("MBUF Usage");?></th> <td> <?php - $mbufstext = get_mbuf(); - $mbufusage = get_mbuf(true); + get_mbuf($mbufstext, $mbufusage); ?> <div class="progress"> <div id="mbufPB" class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="<?=$mbufusage?>" aria-valuemin="0" aria-valuemax="100" style="width: <?=$mbufusage?>%"> @@ -500,8 +499,12 @@ function systemStatusGetUpdateStatus() { setTimeout('systemStatusGetUpdateStatus()', 4000); <?php endif; ?> - +var updateMeters_running = false; function updateMeters() { + if (updateMeters_running) { + return; + } + updateMeters_running = true; url = '/getstats.php'; $.ajax(url, { @@ -510,11 +513,9 @@ function updateMeters() { response = data || ""; if (response != "") stats(data); + updateMeters_running = false; } }); - - setTimer(); - } var update_interval = "<?=$widgetperiod?>"; @@ -523,10 +524,6 @@ function setProgress(barName, percent) { $('[id="' + barName + '"]').css('width', percent + '%').attr('aria-valuenow', percent); } -function setTimer() { - timeout = window.setTimeout('updateMeters()', update_interval); -} - function stats(x) { var values = x.split("|"); if ($.each(values,function(key,value) { @@ -542,13 +539,11 @@ function stats(x) { updateMemory(values[1]); updateState(values[3]); updateTemp(values[4]); - updateInterfaceStats(values[6]); - updateInterfaces(values[7]); - updateCpuFreq(values[8]); - updateLoadAverage(values[9]); - updateMbuf(values[10]); - updateMbufMeter(values[11]); - updateStateMeter(values[12]); + updateCpuFreq(values[6]); + updateLoadAverage(values[7]); + updateMbuf(values[8]); + updateMbufMeter(values[9]); + updateStateMeter(values[10]); } function updateMemory(x) { @@ -638,56 +633,6 @@ function updateLoadAverage(x) { } } -function updateInterfaceStats(x) { - if (widgetActive("interface_statistics")) { - statistics_split = x.split(","); - var counter = 1; - for (var y=0; y<statistics_split.length-1; y++) { - if ($('#stat' + counter)) { - $('[id="stat' + counter + '"]').html(statistics_split[y]); - counter++; - } - } - } -} - -function updateInterfaces(x) { - if (widgetActive("interfaces")) { - interfaces_split = x.split("~"); - interfaces_split.each(function(iface){ - details = iface.split("^"); - if (details[2] == '') { - ipv4_details = ''; - } else { - ipv4_details = details[2] + '<br />'; - } - switch (details[1]) { - case "up": - $('[id="' + details[0] + '-up"]').css("display","inline"); - $('[id="' + details[0] + '-down"]').css("display","none"); - $('[id="' + details[0] + '-block"]').css("display","none"); - $('[id="' + details[0] + '-ip"]').html(ipv4_details); - $('[id="' + details[0] + '-ipv6"]').html(details[3]); - $('[id="' + details[0] + '-media"]').html(details[4]); - break; - case "down": - $('[id="' + details[0] + '-down"]').css("display","inline"); - $('[id="' + details[0] + '-up"]').css("display","none"); - $('[id="' + details[0] + '-block"]').css("display","none"); - $('[id="' + details[0] + '-ip"]').html(ipv4_details); - $('[id="' + details[0] + '-ipv6"]').html(details[3]); - $('[id="' + details[0] + '-media"]').html(details[4]); - break; - case "block": - $('[id="' + details[0] + '-block"]').css("display","inline"); - $('[id="' + details[0] + '-down"]').css("display","none"); - $('[id="' + details[0] + '-up"]').css("display","none"); - break; - } - }); - } -} - function widgetActive(x) { var widget = $('#' + x + '-container'); if ((widget != null) && (widget.css('display') != null) && (widget.css('display') != "none")) { @@ -699,7 +644,7 @@ function widgetActive(x) { /* start updater */ events.push(function(){ - setTimer(); + timeout = window.setInterval(updateMeters, update_interval); }); <?php endif; // $widget_first_instance ?> events.push(function(){ |