Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpnSense
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kulya
OpnSense
Commits
683fb184
Commit
683fb184
authored
Mar 22, 2016
by
Ad Schellevis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(legacy) another spaces and curly braces, stats.inc
parent
5ef34e44
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
304 additions
and
282 deletions
+304
-282
stats.inc
src/etc/inc/stats.inc
+304
-282
No files found.
src/etc/inc/stats.inc
View file @
683fb184
...
...
@@ -5,20 +5,22 @@ require_once("filter.inc");
require_once
(
"pfsense-utils.inc"
);
require_once
(
"interfaces.inc"
);
function
get_uptime_sec
()
{
function
get_uptime_sec
()
{
$boottime
=
""
;
$matches
=
""
;
$boottime
=
get_single_sysctl
(
"kern.boottime"
);
preg_match
(
"/sec = (\d+)/"
,
$boottime
,
$matches
);
$boottime
=
$matches
[
1
];
if
(
intval
(
$boottime
)
==
0
)
if
(
intval
(
$boottime
)
==
0
)
{
return
0
;
}
$uptime
=
time
()
-
$boottime
;
return
$uptime
;
}
function
get_stats
()
{
function
get_stats
()
{
$stats
[
'cpu'
]
=
cpu_usage
();
$stats
[
'mem'
]
=
mem_usage
();
$stats
[
'uptime'
]
=
get_uptime
();
...
...
@@ -37,15 +39,17 @@ function get_stats() {
return
$stats
;
}
function
get_gatewaystats
()
{
function
get_gatewaystats
()
{
$a_gateways
=
return_gateways_array
();
$gateways_status
=
array
();
$gateways_status
=
return_gateways_status
(
true
);
$data
=
""
;
$isfirst
=
true
;
foreach
(
$a_gateways
as
$gname
=>
$gw
)
{
if
(
!
$isfirst
)
if
(
!
$isfirst
)
{
$data
.=
","
;
}
$isfirst
=
false
;
$data
.=
$gw
[
'name'
]
.
","
;
if
(
$gateways_status
[
$gname
])
{
...
...
@@ -85,11 +89,13 @@ function get_gatewaystats() {
return
$data
;
}
function
get_uptime
()
{
function
get_uptime
()
{
$uptime
=
get_uptime_sec
();
if
(
intval
(
$uptime
)
==
0
)
if
(
intval
(
$uptime
)
==
0
)
{
return
;
}
$updays
=
(
int
)(
$uptime
/
86400
);
$uptime
%=
86400
;
...
...
@@ -100,10 +106,11 @@ function get_uptime() {
$upsecs
=
(
int
)(
$uptime
);
$uptimestr
=
""
;
if
(
$updays
>
1
)
if
(
$updays
>
1
)
{
$uptimestr
.=
"
$updays
Days "
;
else
if
(
$updays
>
0
)
}
elseif
(
$updays
>
0
)
{
$uptimestr
.=
"1 Day "
;
}
if
(
$uphours
>
1
)
{
$hours
=
"s"
;
...
...
@@ -128,7 +135,8 @@ function get_uptime() {
}
/* Calculates non-idle CPU time and returns as a percentage */
function
cpu_usage
()
{
function
cpu_usage
()
{
$duration
=
1
;
$diff
=
array
(
'user'
,
'nice'
,
'sys'
,
'intr'
,
'idle'
);
$cpuTicks
=
array_combine
(
$diff
,
explode
(
" "
,
get_single_sysctl
(
'kern.cp_time'
)));
...
...
@@ -139,8 +147,9 @@ function cpu_usage() {
$totalEnd
=
array_sum
(
$cpuTicks2
);
// Something wrapped ?!?!
if
(
$totalEnd
<=
$totalStart
)
if
(
$totalEnd
<=
$totalStart
)
{
return
0
;
}
// Calculate total cycles used
$totalUsed
=
(
$totalEnd
-
$totalStart
)
-
(
$cpuTicks2
[
'idle'
]
-
$cpuTicks
[
'idle'
]);
...
...
@@ -151,51 +160,61 @@ function cpu_usage() {
return
$cpuUsage
;
}
function
get_pfstate
(
$percent
=
false
)
{
function
get_pfstate
(
$percent
=
false
)
{
global
$config
;
$matches
=
""
;
if
(
isset
(
$config
[
'system'
][
'maximumstates'
])
and
$config
[
'system'
][
'maximumstates'
]
>
0
)
if
(
isset
(
$config
[
'system'
][
'maximumstates'
])
and
$config
[
'system'
][
'maximumstates'
]
>
0
)
{
$maxstates
=
"
{
$config
[
'system'
][
'maximumstates'
]
}
"
;
else
}
else
{
$maxstates
=
default_state_size
();
}
$curentries
=
`/sbin/pfctl -si |grep current`
;
if
(
preg_match
(
"/([0-9]+)/"
,
$curentries
,
$matches
))
{
$curentries
=
$matches
[
1
];
}
if
(
!
is_numeric
(
$curentries
))
if
(
!
is_numeric
(
$curentries
))
{
$curentries
=
0
;
if
(
$percent
)
if
(
intval
(
$maxstates
)
>
0
)
}
if
(
$percent
)
{
if
(
intval
(
$maxstates
)
>
0
)
{
return
round
((
$curentries
/
$maxstates
)
*
100
,
0
);
else
}
else
{
return
"NA"
;
else
}
}
else
{
return
$curentries
.
"/"
.
$maxstates
;
}
}
function
get_mbuf
(
$percent
=
false
)
{
function
get_mbuf
(
$percent
=
false
)
{
$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
)
if
(
$percent
)
{
if
(
$mbufs_max
>
0
)
{
return
round
((
$mbufs_total
/
$mbufs_max
)
*
100
,
0
);
else
}
else
{
return
"NA"
;
else
}
}
else
{
return
"
{
$mbufs_total
}
/
{
$mbufs_max
}
"
;
}
}
function
get_temp
()
{
function
get_temp
()
{
$temp_out
=
get_single_sysctl
(
"dev.cpu.0.temperature"
);
if
(
$temp_out
==
""
)
if
(
$temp_out
==
""
)
{
$temp_out
=
get_single_sysctl
(
"hw.acpi.thermal.tz0.temperature"
);
}
// Remove 'C' from the end
return
rtrim
(
$temp_out
,
'C'
);
}
/* Get mounted filesystems and usage. Do not display entries for virtual filesystems (e.g. devfs, nullfs, unionfs) */
function
get_mounted_filesystems
()
{
function
get_mounted_filesystems
()
{
$mout
=
""
;
$filesystems
=
array
();
exec
(
"/bin/df -Tht ufs,tmpfs,zfs,cd9660 | /usr/bin/awk '{print $1, $2, $3, $4, $6, $7;}'"
,
$mout
);
...
...
@@ -205,29 +224,29 @@ function get_mounted_filesystems() {
foreach
(
$mout
as
$fs
)
{
$f
=
array
();
list
(
$f
[
'device'
],
$f
[
'type'
],
$f
[
'total_size'
],
$f
[
'used_size'
],
$f
[
'percent_used'
],
$f
[
'mountpoint'
])
=
explode
(
' '
,
$fs
);
/* We dont' want the trailing % sign. */
$f
[
'percent_used'
]
=
trim
(
$f
[
'percent_used'
],
'%'
);
$filesystems
[]
=
$f
;
}
return
$filesystems
;
}
function
swap_usage
()
{
function
swap_usage
()
{
exec
(
"/usr/sbin/swapinfo"
,
$swap_info
);
$swap_used
=
""
;
foreach
(
$swap_info
as
$line
)
foreach
(
$swap_info
as
$line
)
{
if
(
preg_match
(
'/(\d+)%$/'
,
$line
,
$matches
))
{
$swap_used
=
$matches
[
1
];
break
;
}
}
return
$swap_used
;
}
function
mem_usage
()
{
function
mem_usage
()
{
$totalMem
=
get_single_sysctl
(
"vm.stats.vm.v_page_count"
);
if
(
$totalMem
>
0
)
{
$inactiveMem
=
get_single_sysctl
(
"vm.stats.vm.v_inactive_count"
);
...
...
@@ -235,19 +254,21 @@ function mem_usage() {
$freeMem
=
get_single_sysctl
(
"vm.stats.vm.v_free_count"
);
$usedMem
=
$totalMem
-
(
$inactiveMem
+
$cachedMem
+
$freeMem
);
$memUsage
=
round
((
$usedMem
*
100
)
/
$totalMem
,
0
);
}
else
}
else
{
$memUsage
=
"NA"
;
}
return
$memUsage
;
}
function
update_date_time
()
{
function
update_date_time
()
{
$datetime
=
date
(
"D M j G:i:s T Y"
);
return
$datetime
;
}
function
get_cpufreq
()
{
function
get_cpufreq
()
{
$cpufreqs
=
""
;
$out
=
""
;
$cpufreqs
=
explode
(
" "
,
get_single_sysctl
(
'dev.cpu.0.freq_levels'
));
...
...
@@ -255,14 +276,15 @@ function get_cpufreq() {
$maxfreq
=
$maxfreq
[
0
];
$curfreq
=
""
;
$curfreq
=
get_single_sysctl
(
'dev.cpu.0.freq'
);
if
((
$curfreq
>
0
)
&&
(
$curfreq
!=
$maxfreq
))
if
((
$curfreq
>
0
)
&&
(
$curfreq
!=
$maxfreq
))
{
$out
=
"Current:
{
$curfreq
}
MHz, Max:
{
$maxfreq
}
MHz"
;
}
return
$out
;
}
function
get_cpu_count
(
$show_detail
=
false
)
{
function
get_cpu_count
(
$show_detail
=
false
)
{
$cpucount
=
get_single_sysctl
(
'kern.smp.cpus'
);
if
(
$show_detail
)
{
$cpudetail
=
""
;
exec
(
"/usr/bin/grep 'SMP.*package.*core' /var/run/dmesg.boot | /usr/bin/cut -f2- -d' '"
,
$cpudetail
);
...
...
@@ -271,7 +293,8 @@ function get_cpu_count($show_detail = false) {
return
$cpucount
;
}
function
get_load_average
()
{
function
get_load_average
()
{
$load_average
=
""
;
exec
(
"/usr/bin/uptime | /usr/bin/sed 's/^.*: //'"
,
$load_average
);
return
$load_average
[
0
];
...
...
@@ -302,7 +325,6 @@ function get_interfacestats()
$new_data
.=
"0,"
;
}
}
return
$new_data
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment