1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#!/bin/bash
# Crossfire metaserver statistics generator script
# Copyright (c) 2005 Heikki Hokkanen <heikki.hokkanen@tut.fi>
# License: GPLv2
# the stats file format is:
# updatehits:requesthits:totalservers:totalplayers
statsfile=/var/tmp/meta_xfire.stats
rrdfile=cfstats.rrd
if [ ! -f ${rrdfile} ]; then
# daily (5min), weekly (30min), monthly (2h), yearly (1d)
# (24*3600)/300 = 288
# (7*24**3600)/(300*6) = 336
# (5*7*24*3600)/(7200) = 420
rrdtool create ${rrdfile} \
DS:updates:COUNTER:600:0:U \
DS:requests:COUNTER:600:0:U \
DS:servers:GAUGE:600:0:U \
DS:players:GAUGE:600:0:U \
RRA:AVERAGE:0.5:1:288 \
RRA:AVERAGE:0.5:6:336 \
RRA:AVERAGE:0.5:24:420 \
RRA:AVERAGE:0.5:288:3650 \
RRA:MAX:0.5:1:288 \
RRA:MAX:0.5:6:336 \
RRA:MAX:0.5:24:420 \
RRA:MAX:0.5:288:3650
fi
# update
def="
DEF:updates=${rrdfile}:updates:AVERAGE
DEF:requests=${rrdfile}:requests:AVERAGE
DEF:servers=${rrdfile}:servers:AVERAGE
DEF:players=${rrdfile}:players:AVERAGE
"
gfx="
LINE1:updates#00CC00:updates
LINE1:requests#0000CC:hits
LINE1:servers#00FFFF:servers
LINE1:players#FF0000:players
"
if [ "$1" == "graph" ]; then
rrdtool graph stats-day.png $def $gfx
rrdtool graph stats-week.png $def $gfx -s '-8days'
rrdtool graph stats-month.png $def $gfx -s '-1month'
rrdtool graph stats-year.png $def $gfx -s '-1year'
else
rrdtool update ${rrdfile} N:$(cat ${statsfile})
fi
|