- Repository
- Munin (2.0)
- Last change
- 2021-11-14
- Graph Categories
- Family
- manual
- Capabilities
- Language
- Shell
- License
- GPL-2.0-only
multips
Name
multips - Munin plugin to monitor number of processes. Which processes are configured in client-conf.d
Applicable Systems
Any system with a pgrep, /usr/ucb/ps or other UCB compatible ps command.
Configuration
There is no default configuration. This is an example:
[multips]
env.names pop3d imapd sslwrap
env.regex_imapd ^[0-9]* imapd:
env.regex_pop3d ^[0-9]* pop3d:
The regex parts are not needed if the name given in “names” can be used to grep with directly.
Interpretation
This plugin simply counts the total number of processes matching the configured regular expressions. The regular expressions are interpreted by “grep” (and not grep -E or perl).
Magic Markers
#%# family=manual
#%# capabilities=autoconf
Bugs
None known
Author
Unknown
License
GPLv2
#!@@GOODSH@@
# -*- sh -*-
: <<=cut
=head1 NAME
multips - Munin plugin to monitor number of processes. Which processes
are configured in client-conf.d
=head1 APPLICABLE SYSTEMS
Any system with a pgrep, /usr/ucb/ps or other UCB compatible ps command.
=head1 CONFIGURATION
There is no default configuration. This is an example:
[multips]
env.names pop3d imapd sslwrap
env.regex_imapd ^[0-9]* imapd:
env.regex_pop3d ^[0-9]* pop3d:
The regex parts are not needed if the name given in "names" can be
used to grep with directly.
=head1 INTERPRETATION
This plugin simply counts the total number of processes matching the
configured regular expressions. The regular expressions are
interpreted by "grep" (and not grep -E or perl).
=head1 MAGIC MARKERS
#%# family=manual
#%# capabilities=autoconf
=head1 BUGS
None known
=head1 AUTHOR
Unknown
=head1 LICENSE
GPLv2
=cut
. "$MUNIN_LIBDIR/plugins/plugin.sh"
names=${names:-}
if [ "$1" = "autoconf" ]; then
if [ -z "$names" ]; then
echo "no (Configuration required)"
else
echo yes
fi
exit 0
fi
if [ -z "$names" ]; then
echo "Configuration required"
exit 1
fi
if [ "$1" = "config" ]; then
echo graph_title Number of selected processes
echo 'graph_category processes'
echo 'graph_args --base 1000 --vertical-label processes -l 0'
for name in $names; do
fieldname=$(clean_fieldname "$name")
eval REGEX='"${regex_'"$name"'-\<'"$name"'\>}"'
echo "$fieldname.label $name"
echo "$fieldname.draw LINE2"
echo "$fieldname.info Processes matching this regular expression: /$REGEX/"
print_warning "$fieldname"
print_critical "$fieldname"
done
exit 0
fi
for name in $names; do
fieldname=$(clean_fieldname "$name")
printf "%s.value " "$fieldname"
eval REGEX='"${regex_'"$name"'-\<'"$name"'\>}"'
PGREP=$(command -v pgrep)
if [ -n "$PGREP" ] && [ -x "$PGREP" ]; then
"$PGREP" -f -l "$name" | grep "$REGEX" | wc -l
elif [ -x /usr/ucb/ps ]; then
# Solaris without pgrep. How old is that?
/usr/ucb/ps auxwww | grep "$REGEX" | grep -v grep | wc -l
else
ps auxwww | grep "$REGEX" | grep -v grep | wc -l
fi
done