#!/bin/sh

FILE="/var/lib/collectd/processes.rrd"
HOST=""

if [ -n "$SERVER_NAME" ]; then
	HOST=$SERVER_NAME
	echo "Content-Type: image/png";
	echo "";
else
	HOST=`hostname -f`
fi

rrdtool graph - -a PNG -t "$HOST processes" -v "Processes" \
	-c "BACK#000000" \
	-c "SHADEA#000000" \
	-c "SHADEB#000000" \
	-c "FONT#dddddd" \
	-c "CANVAS#202020" \
	-c "GRID#666666" \
	-c "MGRID#aaaaaa" \
	-c "FRAME#202020" \
	-c "ARROW#ffffff" \
	"DEF:running_avg=$FILE:running:AVERAGE" \
	"DEF:running_min=$FILE:running:MIN" \
	"DEF:running_max=$FILE:running:MAX" \
	"DEF:sleeping_avg=$FILE:sleeping:AVERAGE" \
	"DEF:sleeping_min=$FILE:sleeping:MIN" \
	"DEF:sleeping_max=$FILE:sleeping:MAX" \
	"DEF:zombies_avg=$FILE:zombies:AVERAGE" \
	"DEF:zombies_min=$FILE:zombies:MIN" \
	"DEF:zombies_max=$FILE:zombies:MAX" \
	"DEF:stopped_avg=$FILE:stopped:AVERAGE" \
	"DEF:stopped_min=$FILE:stopped:MIN" \
	"DEF:stopped_max=$FILE:stopped:MAX" \
	"DEF:paging_avg=$FILE:paging:AVERAGE" \
	"DEF:paging_min=$FILE:paging:MIN" \
	"DEF:paging_max=$FILE:paging:MAX" \
	"DEF:blocked_avg=$FILE:blocked:AVERAGE" \
	"DEF:blocked_min=$FILE:blocked:MIN" \
	"DEF:blocked_max=$FILE:blocked:MAX" \
	'CDEF:paging_acc=sleeping_avg,running_avg,stopped_avg,zombies_avg,blocked_avg,paging_avg,+,+,+,+,+' \
	'CDEF:blocked_acc=sleeping_avg,running_avg,stopped_avg,zombies_avg,blocked_avg,+,+,+,+' \
	'CDEF:zombies_acc=sleeping_avg,running_avg,stopped_avg,zombies_avg,+,+,+' \
	'CDEF:stopped_acc=sleeping_avg,running_avg,stopped_avg,+,+' \
	'CDEF:running_acc=sleeping_avg,running_avg,+' \
	'CDEF:sleeping_acc=sleeping_avg' \
	'AREA:paging_acc#808040' \
	'AREA:blocked_acc#408080' \
	'AREA:zombies_acc#804040' \
	'AREA:stopped_acc#804080' \
	'AREA:running_acc#408040' \
	'AREA:stopped_acc#404080' \
	'LINE1:paging_acc#ffff00:Paging  ' \
	'GPRINT:paging_min:MIN:%5.1lf Min,' \
	'GPRINT:paging_avg:AVERAGE:%5.1lf Average,' \
	'GPRINT:paging_max:MAX:%5.1lf Max,' \
	'GPRINT:paging_avg:LAST:%5.1lf Last\l' \
	'LINE1:blocked_acc#00ffff:Blocked ' \
	'GPRINT:blocked_min:MIN:%5.1lf Min,' \
	'GPRINT:blocked_avg:AVERAGE:%5.1lf Average,' \
	'GPRINT:blocked_max:MAX:%5.1lf Max,' \
	'GPRINT:blocked_avg:LAST:%5.1lf Last\l' \
	'LINE1:zombies_acc#ff0000:Zombies ' \
	'GPRINT:zombies_min:MIN:%5.1lf Min,' \
	'GPRINT:zombies_avg:AVERAGE:%5.1lf Average,' \
	'GPRINT:zombies_max:MAX:%5.1lf Max,' \
	'GPRINT:zombies_avg:LAST:%5.1lf Last\l' \
	'LINE1:stopped_acc#ff00ff:Stopped ' \
	'GPRINT:stopped_min:MIN:%5.1lf Min,' \
	'GPRINT:stopped_avg:AVERAGE:%5.1lf Average,' \
	'GPRINT:stopped_max:MAX:%5.1lf Max,' \
	'GPRINT:stopped_avg:LAST:%5.1lf Last\l' \
	'LINE1:running_acc#00ff00:Running ' \
	'GPRINT:running_min:MIN:%5.1lf Min,' \
	'GPRINT:running_avg:AVERAGE:%5.1lf Average,' \
	'GPRINT:running_max:MAX:%5.1lf Max,' \
	'GPRINT:running_avg:LAST:%5.1lf Last\l' \
	'LINE1:sleeping_acc#0000ff:Sleeping' \
	'GPRINT:sleeping_min:MIN:%5.1lf Min,' \
	'GPRINT:sleeping_avg:AVERAGE:%5.1lf Average,' \
	'GPRINT:sleeping_max:MAX:%5.1lf Max,' \
	'GPRINT:sleeping_avg:LAST:%5.1lf Last\l'
