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