#!/bin/sh
###############################################################################
#
# Munin plugin to monitor Zend OPCache <http://php.net/manual/en/book.opcache.php>
# By Daniel Lo Nigro <http://dan.cx/>
#
# Installation:
#  1. Copy php_opcache.php file onto server and verify you can hit it in a browser
#  2. Add to Munin config:
# [php_opcache]
# env.URL http://example/php_opcache.php
###############################################################################
# Settigs required for autoconf
#%# family=auto
#%# capabilities=autoconf suggest

URL=${URL:-'http://localhost/php_opcache.php'}

WGET=`which wget`;
WGET_FLAGS="-Yoff"; # refer to wget manual, you may set extra parameters like disable proxy
act=memory

if [ "$1" = "autoconf" ]; then
        [ -z "$URL" ] && echo "no (edit URL config in header file !)" && exit 1
        [ -n "$URL" ] && echo "yes" && exit 0
fi

if [ "$1" = "suggest" ]; then
        echo "memory"
        exit 0
fi

if [ "$1" = "config" ] && [ "$act" = "memory" ]; then

cat <<'EOM'
graph_title OPCache Memory usage
graph_args -l 0 --base 1024
graph_vlabel Memory usage
graph_category memory
graph_order mem_used mem_free mem_wasted
graph_total Total
mem_free.label Memory Free
mem_free.draw STACK
mem_free.min 0
mem_used.label Memory Used
mem_used.draw AREA
mem_used.min 0
mem_wasted.label Memory Wasted
mem_wasted.draw STACK
mem_wasted.min 0
EOM

exit 0
fi

###############################################################################

[ -x $WGET ] && $WGET -q $WGET_FLAGS "$URL?act=$act" -O - && exit 0

exit 1

