summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2017-04-03 15:02:20 -0400
committerjim-p <jimp@pfsense.org>2017-04-03 15:02:20 -0400
commit1db44fd9e124af96b8f95b9d492ab36653ea3630 (patch)
tree67fa3cd743668ef907d93fc42444e1bd9b1118dd /src
parentf0875a7e6af8862ddd71b91b52194a96ff385d3b (diff)
parent2e56abd118b26e99a5c26c996d83e2fdf3f74423 (diff)
downloadpfsense-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.php18
-rw-r--r--src/usr/local/www/widgets/widgets/system_information.widget.php81
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(){
OpenPOWER on IntegriCloud