#!/bin/bash

TZ='Europe/Berlin'; export TZ

rrdtool graph public_html/tcpconns_day.png --start -86400 -e -300 \
  DEF:tcpac=tcpconns.rrd:tcpactive:AVERAGE \
  DEF:tcppv=tcpconns.rrd:tcppassive:AVERAGE \
  DEF:tcpacmax=tcpconns.rrd:tcpactive:MAX \
  DEF:tcppvmax=tcpconns.rrd:tcppassive:MAX \
  "CDEF:outminmax=tcpacmax,60,*" \
  "CDEF:inminmax=tcppvmax,60,*" \
  "CDEF:outmin=tcpac,60,*" \
  "CDEF:inmin=tcppv,60,*" \
  "CDEF:intotal=tcppv,0,5000,LIMIT,UN,0,tcppv,IF,86400,*" \
  "CDEF:outtotal=tcpac,0,5000,LIMIT,UN,0,tcpac,IF,86400,*" \
  "CDEF:total=intotal,outtotal,+" \
  AREA:inminmax#777777:tcpin_peak \
  STACK:outminmax#bbbbbb:tcpout_peak \
  AREA:inmin#00dd00:tcpin \
  STACK:outmin#0000ff:tcpout \
  COMMENT:"+--------------------------\n" \
  COMMENT:"             maximum       average       current" \
  COMMENT:"| `date +\"%b %d %H:%M:%S %Y\"`\n" \
  COMMENT:"in    " \
  GPRINT:inmin:MAX:'%7.2lf %sc/m' \
  GPRINT:inmin:AVERAGE:"%7.2lf %Sc/m" \
  GPRINT:inmin:LAST:"%7.2lf %Sc/m" \
  COMMENT:"| `uptime | sed 's/.*\(up[^,]*,[^,]*\).*/\1 hours/g'`\n" \
  COMMENT:"out   " \
  GPRINT:outmin:MAX:"%7.2lf %Sc/m" \
  GPRINT:outmin:AVERAGE:"%7.2lf %Sc/m" \
  GPRINT:outmin:LAST:"%7.2lf %Sc/m" \
  COMMENT:"|\n" \
  GPRINT:intotal:AVERAGE:"totals  %8.0lf c i" \
  GPRINT:outtotal:AVERAGE:"%8.0lf c o" \
  GPRINT:total:AVERAGE:"%8.0lf c t" \
  COMMENT:"|" \
  -v "connections/minute" -t "moya - tcp conns/minute - day (5 min avg)" -h 100 -w 392 -x "HOUR:1:HOUR:6:HOUR:2:0:%H" \
  -l 0

rrdtool graph public_html/tcpconns_week.png --start -604800 -e -1800 \
  DEF:tcpac=tcpconns.rrd:tcpactive:AVERAGE \
  DEF:tcppv=tcpconns.rrd:tcppassive:AVERAGE \
  DEF:tcpacmax=tcpconns.rrd:tcpactive:MAX \
  DEF:tcppvmax=tcpconns.rrd:tcppassive:MAX \
  "CDEF:outminmax=tcpacmax,60,*" \
  "CDEF:inminmax=tcppvmax,60,*" \
  "CDEF:outmin=tcpac,60,*" \
  "CDEF:inmin=tcppv,60,*" \
  "CDEF:intotal=tcppv,0,5000,LIMIT,UN,0,tcppv,IF,604800,*" \
  "CDEF:outtotal=tcpac,0,5000,LIMIT,UN,0,tcpac,IF,604800,*" \
  "CDEF:total=intotal,outtotal,+" \
  AREA:inminmax#777777:tcpin_peak \
  STACK:outminmax#bbbbbb:tcpout_peak \
  AREA:inmin#00dd00:tcpin \
  STACK:outmin#0000ff:tcpout \
  COMMENT:"+--------------------------\n" \
  COMMENT:"             maximum       average       current" \
  COMMENT:"| `date +\"%b %d %H:%M:%S %Y\"`\n" \
  COMMENT:"in    " \
  GPRINT:inmin:MAX:'%7.2lf %sc/m' \
  GPRINT:inmin:AVERAGE:"%7.2lf %Sc/m" \
  GPRINT:inmin:LAST:"%7.2lf %Sc/m" \
  COMMENT:"| `uptime | sed 's/.*\(up[^,]*,[^,]*\).*/\1 hours/g'`\n" \
  COMMENT:"out   " \
  GPRINT:outmin:MAX:"%7.2lf %Sc/m" \
  GPRINT:outmin:AVERAGE:"%7.2lf %Sc/m" \
  GPRINT:outmin:LAST:"%7.2lf %Sc/m" \
  COMMENT:"|\n" \
  GPRINT:intotal:AVERAGE:"totals  %8.0lf c i" \
  GPRINT:outtotal:AVERAGE:"%8.0lf c o" \
  GPRINT:total:AVERAGE:"%8.0lf c t" \
  COMMENT:"|" \
  -v "connections/minute" -t "moya - tcp conns/minute - week (30 min avg)" -h 100 -w 392 -x "HOUR:6:DAY:1:DAY:1:0:%a" \
  -l 0

rrdtool graph public_html/tcpconns_month.png --start -2592000 -e -7200 \
  DEF:tcpac=tcpconns.rrd:tcpactive:AVERAGE \
  DEF:tcppv=tcpconns.rrd:tcppassive:AVERAGE \
  DEF:tcpacmax=tcpconns.rrd:tcpactive:MAX \
  DEF:tcppvmax=tcpconns.rrd:tcppassive:MAX \
  "CDEF:outminmax=tcpacmax,60,*" \
  "CDEF:inminmax=tcppvmax,60,*" \
  "CDEF:outmin=tcpac,60,*" \
  "CDEF:inmin=tcppv,60,*" \
  "CDEF:intotal=tcppv,0,5000,LIMIT,UN,0,tcppv,IF,2592000,*" \
  "CDEF:outtotal=tcpac,0,5000,LIMIT,UN,0,tcpac,IF,2592000,*" \
  "CDEF:total=intotal,outtotal,+" \
  AREA:inminmax#777777:tcpin_peak \
  STACK:outminmax#bbbbbb:tcpout_peak \
  AREA:inmin#00dd00:tcpin \
  STACK:outmin#0000ff:tcpout \
  COMMENT:"+--------------------------\n" \
  COMMENT:"             maximum       average       current" \
  COMMENT:"| `date +\"%b %d %H:%M:%S %Y\"`\n" \
  COMMENT:"in    " \
  GPRINT:inmin:MAX:'%7.2lf %sc/m' \
  GPRINT:inmin:AVERAGE:"%7.2lf %Sc/m" \
  GPRINT:inmin:LAST:"%7.2lf %Sc/m" \
  COMMENT:"| `uptime | sed 's/.*\(up[^,]*,[^,]*\).*/\1 hours/g'`\n" \
  COMMENT:"out   " \
  GPRINT:outmin:MAX:"%7.2lf %Sc/m" \
  GPRINT:outmin:AVERAGE:"%7.2lf %Sc/m" \
  GPRINT:outmin:LAST:"%7.2lf %Sc/m" \
  COMMENT:"|\n" \
  GPRINT:intotal:AVERAGE:"totals  %8.0lf c i" \
  GPRINT:outtotal:AVERAGE:"%8.0lf c o" \
  GPRINT:total:AVERAGE:"%8.0lf c t" \
  COMMENT:"|" \
  -v "connections/minute" -t "moya - tcp conns/minute - month (2 hour avg)" -h 100 -w 392 -x "DAY:1:WEEK:1:WEEK:1:0:Week %W" \
  -l 0

rrdtool graph public_html/tcpconns_year.png --start -31536000 -e -86400 \
  DEF:tcpac=tcpconns.rrd:tcpactive:AVERAGE \
  DEF:tcppv=tcpconns.rrd:tcppassive:AVERAGE \
  DEF:tcpacmax=tcpconns.rrd:tcpactive:MAX \
  DEF:tcppvmax=tcpconns.rrd:tcppassive:MAX \
  "CDEF:outminmax=tcpacmax,60,*" \
  "CDEF:inminmax=tcppvmax,60,*" \
  "CDEF:outmin=tcpac,60,*" \
  "CDEF:inmin=tcppv,60,*" \
  "CDEF:intotal=tcppv,0,5000,LIMIT,UN,0,tcppv,IF,31536000,*" \
  "CDEF:outtotal=tcpac,0,5000,LIMIT,UN,0,tcpac,IF,31536000,*" \
  "CDEF:total=intotal,outtotal,+" \
  AREA:inminmax#777777:tcpin_peak \
  STACK:outminmax#bbbbbb:tcpout_peak \
  AREA:inmin#00dd00:tcpin \
  STACK:outmin#0000ff:tcpout \
  COMMENT:"+--------------------------\n" \
  COMMENT:"             maximum       average       current" \
  COMMENT:"| `date +\"%b %d %H:%M:%S %Y\"`\n" \
  COMMENT:"in    " \
  GPRINT:inmin:MAX:'%7.2lf %sc/m' \
  GPRINT:inmin:AVERAGE:"%7.2lf %Sc/m" \
  GPRINT:inmin:LAST:"%7.2lf %Sc/m" \
  COMMENT:"| `uptime | sed 's/.*\(up[^,]*,[^,]*\).*/\1 hours/g'`\n" \
  COMMENT:"out   " \
  GPRINT:outmin:MAX:"%7.2lf %Sc/m" \
  GPRINT:outmin:AVERAGE:"%7.2lf %Sc/m" \
  GPRINT:outmin:LAST:"%7.2lf %Sc/m" \
  COMMENT:"|\n" \
  GPRINT:intotal:AVERAGE:"totals  %8.0lf c i" \
  GPRINT:outtotal:AVERAGE:"%8.0lf c o" \
  GPRINT:total:AVERAGE:"%8.0lf c t" \
  COMMENT:"|" \
  -v "connections/minute" -t "moya - tcp conns/minute - year (1 day avg)" -h 100 -w 392 -x "MONTH:1:MONTH:1:MONTH:1:0:%b" \
  -l 0
