summaryrefslogtreecommitdiffstats
path: root/usr/local/www/includes/functions.inc.php
blob: 88465ab3f66b1f85cb290097ec995d163113fbdc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?
function cpu_usage() {
	return get_cpuusage(get_cputicks(), get_cputicks());
}


function get_uptime() {
	exec("/sbin/sysctl -n kern.boottime", $boottime);
	preg_match("/sec = (\d+)/", $boottime[0], $matches);
	$boottime = $matches[1];
	$uptime = time() - $boottime;

	if ($uptime > 60)
		$uptime += 30;
	$updays = (int)($uptime / 86400);
	$uptime %= 86400;
	$uphours = (int)($uptime / 3600);
	$uptime %= 3600;
	$upmins = (int)($uptime / 60);

	$uptimestr = "";
	if ($updays > 1)
		$uptimestr .= "$updays days, ";
	else if ($updays > 0)
		$uptimestr .= "1 day, ";
	$uptimestr .= sprintf("%02d:%02d", $uphours, $upmins);
	return $uptimestr;
}

function get_cputicks() {
	$cputicks = explode(" ", `/sbin/sysctl -n kern.cp_time`);
	return $cputicks;
}

function get_cpuusage($cpuTicks, $cpuTicks2) {

	$diff = array();
	$diff['user'] = ($cpuTicks2[0] - $cpuTicks[0])+1;
	$diff['nice'] = ($cpuTicks2[1] - $cpuTicks[1])+1;
	$diff['sys'] = ($cpuTicks2[2] - $cpuTicks[2])+1;
	$diff['intr'] = ($cpuTicks2[3] - $cpuTicks[3])+1;
	$diff['idle'] = ($cpuTicks2[4] - $cpuTicks[4])+1;
	
	//echo "<!-- user: {$diff['user']}  nice {$diff['nice']}  sys {$diff['sys']}  intr {$diff['intr']}  idle {$diff['idle']} -->";
	$totalDiff = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'] + $diff['idle'];
	$totalused = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'] - 1;
	$cpuUsage = round(100 * ($totalused / $totalDiff), 0);
	
	#$totalDiff = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'] + $diff['idle'];
	#$cpuUsage = round(100 * (1 - $diff['idle'] / $totalDiff), 0);
	
	return $cpuUsage;
}

function get_pfstate() {
	global $config;
        if (isset($config['system']['maximumstates']) and $config['system']['maximumstates'] > 0)
                $maxstates="/{$config['system']['maximumstates']}";
        else
                $maxstates="/10000";
        $curentries = `/sbin/pfctl -si |grep current`;
        if (preg_match("/([0-9]+)/", $curentries, $matches)) {
             $curentries = $matches[1];
        }
        return $curentries . $maxstates;
}


function disk_usage()
{
	exec("df -h | grep -w '/' | awk '{ print $5 }' | cut -d '%' -f 1", $dfout);
	$diskusage = trim($dfout[0]);

	return $diskusage;
}

function swap_usage()
{
	$swapUsage = `/usr/sbin/swapinfo | cut -c45-55 | grep "%"`;
	$swapUsage = ereg_replace('%', "", $swapUsage);
	$swapUsage = ereg_replace(' ', "", $swapUsage);
	$swapUsage = rtrim($swapUsage);

	return $swapUsage;
}

function mem_usage()
{
	exec("/sbin/sysctl -n vm.stats.vm.v_active_count vm.stats.vm.v_inactive_count " .
		"vm.stats.vm.v_wire_count vm.stats.vm.v_cache_count vm.stats.vm.v_free_count", $memory);
	
	$totalMem = $memory[0] + $memory[1] + $memory[2] + $memory[3] + $memory[4];
	$freeMem = $memory[4];
	$usedMem = $totalMem - $freeMem;
	$memUsage = round(($usedMem * 100) / $totalMem, 0);

	return $memUsage;
}
OpenPOWER on IntegriCloud