- Repository
- Munin (2.0)
- Last change
- 2018-08-10
- Graph Categories
- Family
- auto
- Capabilities
- Keywords
- Language
- Shell
- Authors
threads
Name
threads - Plugin to monitor the number of threads on Linux
Configuration
No configuration
Author
Lars Strand
License
GNU GPL
Magic Markers
#%# family=auto
#%# capabilities=autoconf
#!@@GOODSH@@
# -*- sh -*-
# vim: ft=sh
set -e
: << =cut
=head1 NAME
threads - Plugin to monitor the number of threads on Linux
=head1 CONFIGURATION
No configuration
=head1 AUTHOR
Lars Strand
=head1 LICENSE
GNU GPL
=head1 MAGIC MARKERS
#%# family=auto
#%# capabilities=autoconf
=cut
if [ "$1" = "autoconf" ]; then
grep -q '^Threads' /proc/$$/status && echo "yes" || echo "no (/proc/$$/status not readable)"
exit 0
fi
if [ "$1" = "config" ]; then
echo 'graph_title Number of threads'
#echo 'graph_args --base 1000 -l 0 '
echo 'graph_vlabel number of threads'
echo 'graph_category processes'
echo 'graph_info This graph shows the number of threads.'
echo 'threads.label threads'
echo 'threads.info The current number of threads.'
exit 0
fi
# Discard find's stderr, since SELinux or others may prevent us from parsing
# proc directories (e.g. "find: '/proc/fs/nfsd': Permission denied").
# grep's -s suppresses errors about files that vanished before they could be
# read. It isn't entirely portable, but GNU grep should be a given on Linux.
# Sadly awk has no such equivalent option or we could skip grep altogether.
find /proc/ -mindepth 2 -maxdepth 2 -type f -name status -print0 2>/dev/null \
| xargs -0 --no-run-if-empty --max-args=1000 grep -sh '^Threads:' \
| awk 'BEGIN { sum = 0; }
{ sum += $2; }
END { print "threads.value", sum; }'