#!/bin/bash

# this script is started:
#  - manual, from the monitor folder
#  - cronwise, from the project-HOME folder
# usage:
#  ./createGraphs 1d #  or 1h or 2w or 1y
cd monitor >/dev/null 2>&1 # this only works if we are in the HOME folder, else its ignored with an error

# the output of this script can only be visualized under a webserver
FOLDER='/var/www/suy.nl/m'

function graph {
  P=${1}
  mkdir -p ${FOLDER}/${P}
  rrdtool graph ${FOLDER}/${P}/disk.png        \
	--imgformat PNG                        \
	--width 640                            \
	--height 240                           \
        --upper-limit 100                      \
        --lower-limit 0                        \
	--start -${P}                          \
        --watermark "$(date)"                  \
	--vertical-label 'Percentage'          \
	--title 'Usage last '${P}              \
	'DEF:root=disk.rrd:root:AVERAGE'       \
	'DEF:memt=mem.rrd:total:AVERAGE'       \
	'DEF:memu=mem.rrd:used:AVERAGE'        \
	'CDEF:memp=memu,memt,/'                \
	'CDEF:memq=memp,100,*'                 \
	'AREA:root#0000FF:"disk /"'            \
	'LINE2:memq#00FF00:"Memory"'
	
  rrdtool graph ${FOLDER}/${P}/load.png        \
	--imgformat PNG                        \
	--width 640                            \
	--height 240                           \
        --upper-limit 1                        \
        --lower-limit 0                        \
	--start -${P}                          \
        --watermark "$(date)"                  \
	--title 'processor load in '${P}       \
	--vertical-label 'Processors used'     \
	'DEF:min1=load.rrd:min1:AVERAGE'       \
	'DEF:min5=load.rrd:min5:AVERAGE'       \
	'DEF:min15=load.rrd:min15:AVERAGE'     \
	'AREA:min1#FF0000:"1 minute"'          \
	'AREA:min5#FFA500:"5 minutes"'         \
	'LINE1:min5#FF0000:'                   \
	'AREA:min15#FFD801:"15 minutes"'       \
	'LINE1:min15#FFA500:'
	
  rrdtool graph ${FOLDER}/${P}/cpu.png         \
	--imgformat PNG                        \
	--width 640                            \
	--height 240                           \
        --upper-limit 10                       \
        --lower-limit 0                        \
	--start -${P}                          \
        --watermark "$(date)"                  \
	--vertical-label 'Percentage'          \
	--title 'CPU usage in '${P}            \
	'DEF:us=cpu.rrd:us:AVERAGE'            \
	'DEF:sy=cpu.rrd:sy:AVERAGE'            \
	'DEF:ni=cpu.rrd:ni:AVERAGE'            \
	'AREA:sy#00FF00:"sy"'                  \
	'STACK:us#0000FF:"us"'                 \
	'STACK:ni#FF0000:"ni"'
 
    rrdtool graph ${FOLDER}/${P}/network.png   \
        --imgformat PNG                        \
        --width 640                            \
        --height 240                           \
        --start -${P}                          \
        --watermark "$(date)"                  \
        --vertical-label 'Bytes'               \
        --upper-limit 10000                    \
        --lower-limit 0                        \
        --title 'Network last '${P}            \
        --lower-limit 0                        \
        'DEF:in=network.rrd:in:AVERAGE'        \
        'DEF:out=network.rrd:out:AVERAGE'      \
        'AREA:out#00FF00:"out"'                \
        'LINE2:in#0000FF:"in"'
}

for var in "$@"
do
    graph "$var"
done
