#!/bin/sh # # Plugin to monitor queue time spent rendering per queue by renderd # # Parameters: # # config (required) # autoconf (optional - used by munin-config) # # Copyright (c) 2007 - 2023 by mod_tile contributors (see AUTHORS file) # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; If not, see http://www.gnu.org/licenses/. 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 ${RENDERD_STATS:-/run/renderd/renderd.stats}) reqprioTime=$(sed -e '/^TimePrioRendered/!d' -e 's/.*: //' -e q ${RENDERD_STATS:-/run/renderd/renderd.stats}) reqpriolowTime=$(sed -e '/^TimeLowRendered/!d' -e 's/.*: //' -e q ${RENDERD_STATS:-/run/renderd/renderd.stats}) reqbulkTime=$(sed -e '/^TimeBulkRendered/!d' -e 's/.*: //' -e q ${RENDERD_STATS:-/run/renderd/renderd.stats}) dirtyTime=$(sed -e '/^TimeDirtyRendered/!d' -e 's/.*: //' -e q ${RENDERD_STATS:-/run/renderd/renderd.stats}) echo "req.value " $reqTime echo "reqLow.value " $reqpriolowTime echo "reqPrio.value " $reqprioTime echo "dirty.value " $dirtyTime echo "reqBulk.value " $reqbulkTime