#!/bin/sh
#
# Plugin to monitor queue time spent rendering per queue by renderd
#
# Parameters: 
#
# 	config   (required)
# 	autoconf (optional - used by munin-config)
#

if [ "$1" = "config" ]; then

	echo 'graph_title Renderd time spent by queue'
	echo 'graph_args --base 1000 -l 0'
	echo 'graph_vlabel time spent per ${graph_period}'
	echo 'graph_category renderd'
    echo 'reqPrio.label Priority request queue'
	echo 'reqPrio.type DERIVE'
    echo 'reqPrio.cdef reqPrio,1000,/'
    echo 'reqPrio.min 0'
    echo 'reqPrio.draw AREA'
    echo 'reqPrio.info Time for priority request queue'
	echo 'req.label Request queue'
	echo 'req.type DERIVE'
    echo 'req.cdef req,1000,/'
    echo 'req.min 0'
    echo 'req.draw STACK'
    echo 'req.info Time for Request queue'
    echo 'reqLow.label Low priority request queue'
    echo 'reqLow.type DERIVE'
    echo 'reqLow.cdef reqLow,1000,/'
    echo 'reqLow.min 0'
    echo 'reqLow.draw STACK'
    echo 'reqLow.info Time for low priority request queue'
    echo 'dirty.label Dirty queue'
	echo 'dirty.type DERIVE'
    echo 'dirty.cdef dirty,1000,/'
    echo 'dirty.min 0'
    echo 'dirty.draw STACK'
    echo 'dirty.info Time for dirty queue'
    echo 'reqBulk.label Bulk queue'
	echo 'reqBulk.type DERIVE'
    echo 'reqBulk.cdef reqBulk,1000,/'
    echo 'reqBulk.min 0'
    echo 'reqBulk.draw STACK'
    echo 'reqBulk.info Time for bulk queue'
	exit 0
fi

reqTime=`sed -e '/^TimeRendered/!d' -e 's/.*: //' -e q /run/renderd/renderd.stats`
reqprioTime=`sed -e '/^TimePrioRendered/!d' -e 's/.*: //' -e q /run/renderd/renderd.stats`
reqpriolowTime=`sed -e '/^TimeLowRendered/!d' -e 's/.*: //' -e q /run/renderd/renderd.stats`
reqbulkTime=`sed -e '/^TimeBulkRendered/!d' -e 's/.*: //' -e q /run/renderd/renderd.stats`
dirtyTime=`sed -e '/^TimeDirtyRendered/!d' -e 's/.*: //' -e q /run/renderd/renderd.stats`


echo "req.value " $reqTime
echo "reqLow.value " $reqpriolowTime
echo "reqPrio.value " $reqprioTime
echo "dirty.value " $dirtyTime
echo "reqBulk.value " $reqbulkTime
