- Repository
- Munin (contrib)
- Last change
- 2021-03-31
- Graph Categories
- Capabilities
- Keywords
- Language
- Bash
- License
- GPL-2.0-only
- Authors
uwsgi_
Sadly there is no documentation for this plugin.
#!/bin/bash
# Copyright (c) 2013 Gareth Davies (shaolintiger@gmail.com www.shaolintiger.com)
# License GPLv2
# This plugin monitors number of workers, total memory used and average memory per process for uWSGI.
# Here are the symlinks to enable it
#
#        ln -s /usr/share/munin/plugins/uwsgi_ /etc/munin/plugins/uwsgi_average
#        ln -s /usr/share/munin/plugins/uwsgi_ /etc/munin/plugins/uwsgi_memory
#        ln -s /usr/share/munin/plugins/uwsgi_ /etc/munin/plugins/uwsgi_processes
mode=`echo $0 | cut -d _ -f 2`
if [ "$1" = "suggest" ]; then
        echo "memory"
        echo "processes"
        echo "average"
        exit 0
fi
if [ "$mode" = "memory" ]; then
        if [ "$1" = "config" ]; then
                echo "graph_title uWSGI Total Memory"
                echo "graph_vlabel Total RAM"
                echo "graph_category appserver"
                echo "graph_args --base 1024"
                echo "ram.label Total RAM"
                exit 0
        else
        memory_array=(`ps auwx | grep -i "uwsgi" | grep -v grep | awk '{print $6 }'`)
        for i in "${memory_array[@]}"
            do
                 sum=$(( $sum + ( $i * 1024) ))
        done
                 echo -n "ram.value "
                 echo $sum
        fi
elif [ "$mode" = "processes" ]; then
        if [ "$1" = "config" ]; then
                echo "graph_title uWSGI Processes"
                echo "graph_vlabel Processes"
                echo "graph_category appserver"
                echo "processes.label active processes"
        else
                echo -n "processes.value "
                ps awwwux | grep -i 'uwsgi' | grep -v grep | wc -l
                exit 0
        fi
elif [ "$mode" = "average" ]; then
        if [ "$1" = "config" ]; then
        echo 'graph_title uWSGI Average Process Size'
        echo 'graph_args --base 1024 -l 0 '
        echo 'graph_vlabel Average Process Size'
        echo 'graph_category appserver'
        echo 'uwsgi_average.label Average Process Size'
        echo 'uwsgi_average.draw LINE2'
        echo 'uwsgi_average.info The average process size for uWSGI'
        else
                echo -n "uwsgi_average.value "
                ps awwwux | grep -i 'uwsgi' | grep -v grep | awk '{total_mem = $6 * 1024 + total_mem; total_proc++} END{printf("%d\n", total_mem / total_proc)}'
                exit 0
        fi
fi
exit 0