Repository
Munin (contrib)
Last change
2018-08-02
Graph Categories
Family
auto
Capabilities
Keywords
Language
Bash
Authors

process_cpushare

Sadly there is no documentation for this plugin.

#!/bin/bash
#
# Plugin to monitor CPU share, for a selected set of processes. Tested on Linux.
#
# Author: Stefan Osterlitz
# Based on work of Erik Cederstrand
#
# Usage: Place in /usr/local/etc/munin/plugins/ (or link it there  using ln -s)
#        Add this to your /ur/local/etc/munin/plugin-conf.d/plugins.conf:

#       [process_*]
#       env.procs httpd java
#
#    httpd and java being a list of the processes to monitor. You may use regex expressions for grep, but watch their conversion to field names.
#		 ps options may vary.

#
# Parameters understood:
#
#       config   (required)
#       autoconf (optional - used by munin-config)
#

#%# family=auto
#%# capabilities=autoconf



if [ "$1" = "autoconf" ] ; then
    if [ -n "$procs" ] ; then
        echo "yes"
    else
        echo "\$procs not defined."
    fi
    exit
fi

for proc in $procs; do
    cproc=${proc//[^A-Za-z0-9_]/_}
    cprocs+=" $cproc"
done;

if [ "$1" = "config" ] ; then
    echo "graph_args --base 1000 -r --lower-limit 0";
    echo "graph_title CPU usage, by process";
    echo "graph_category processes";
    echo "graph_info This graph shows CPU usage, for monitored processes.";
    echo 'graph_vlabel %'
    echo 'graph_scale no'
    echo 'graph_period second'
    echo "graph_order $cprocs"

    for proc in $procs; do
        cproc=${proc//[^A-Za-z0-9_]/_}
        echo "${cproc}.label $proc"
        echo "${cproc}.info CPU used by process $proc"
     done ;

    exit
fi



for proc in $procs ; do {
        cproc=${proc//[^A-Za-z0-9_]/_}
	ps axo 'pcpu,comm,command' | grep -v grep | grep "$proc" | LC_ALL=us_US awk '
	BEGIN {
	SUM=0
	}
	{
	SUM+=$1
	}
	END {
	print "'${cproc}'.value "SUM
	}
	'
}
done;