- Repository
- Munin (contrib)
- Last change
- 2021-02-16
- Graph Categories
- Family
- auto
- Capabilities
- Keywords
- Language
- Shell
- License
- GPL-2.0-only
memory_osx
Name
memory - Plugin to measure memory on osx.
Notes
This plugin runs the top command once per interval, to discover memory usage on OSX. Contributions are welcome to collect additional memory regions, if possible, such as buffers and caches.
License
GPLv2
Magic Markers
#%# family=auto
#%# capabilities=autoconf
#!/bin/sh
# -*- sh -*-
# shellcheck disable=SC2046
: << =cut
=head1 NAME
memory - Plugin to measure memory on osx.
=head1 NOTES
This plugin runs the top command once per interval, to discover memory usage on OSX.
Contributions are welcome to collect additional memory regions, if possible, such as buffers and caches.
=head1 LICENSE
GPLv2
=head1 MAGIC MARKERS
#%# family=auto
#%# capabilities=autoconf
=cut
if [ "$1" = "autoconf" ]; then
if [ "$(uname)" = "Darwin" ]; then
echo yes
exit 0
else
echo "no (uname does not report 'Darwin')"
exit 0
fi
fi
TOTALMEM=$(sysctl hw.memsize | cut -d" " -f2)
graphlimit=$TOTALMEM
dehumanise() {
echo "$1" | sed -e "s/K/*1024/g;s/M/*1024*1024/;s/G/*1024*1024*1024/;s/T/*1024*1024*1024*1024/"
}
if [ "$1" = "config" ]; then
echo 'graph_title Memory'
echo "graph_order used wired unused"
echo "graph_args --base 1024 -r --lower-limit 0 --upper-limit $graphlimit"
echo 'graph_vlabel Bytes'
echo 'graph_category system'
echo 'used.label used (not incl. wired)'
echo 'used.draw AREA'
echo 'used.min 0'
echo "used.info Used memory, not including wired"
echo 'wired.label wired'
echo 'wired.draw STACK'
echo 'wired.min 0'
echo 'wired.info Wired memory'
exit 0
fi
TOPINFO=$(top -l 1 | grep "PhysMem: ")
MEM_USED=$(echo "$TOPINFO" | awk '/PhysMem: / { print substr($2, 1, length($2)) }')
MEM_WIRED=$(echo "$TOPINFO" | awk '/PhysMem: / { print substr($4, 2, length($4)-1) }')
echo "used.value" $(( $(dehumanise "$MEM_USED") - $(dehumanise "$MEM_WIRED") ))
echo "wired.value" $(( $(dehumanise "$MEM_WIRED") ))