From bb0d187fef71bc05482524263e0d48589483394d Mon Sep 17 00:00:00 2001 From: Keith Whyte Date: Fri, 24 Mar 2023 23:00:56 +0100 Subject: [PATCH] Collectd updates --- modules/rhizo_base/files/collectd-hack | 118 +++++++++++++++++++++++-- 1 file changed, 111 insertions(+), 7 deletions(-) diff --git a/modules/rhizo_base/files/collectd-hack b/modules/rhizo_base/files/collectd-hack index 09ccaa9..10d1a7d 100644 --- a/modules/rhizo_base/files/collectd-hack +++ b/modules/rhizo_base/files/collectd-hack @@ -1,29 +1,133 @@ #!/bin/bash +debug() { + if [ "$1" == "d" ] ; then + echo $2 + fi +} + is_empty () { - _o=`rrdtool xport DEF:A=/var/lib/collectd/rrd/$(hostname -f)/$1:value:AVERAGE XPORT:A -s -1day -m10 | xmllint --xpath 'string(xport/data/row)' -` + _o=`rrdtool xport DEF:A=/var/lib/collectd/rrd/$(hostname -f)/$2:value:AVERAGE XPORT:A -s -1week -m27 | xmllint --xpath 'string(xport/data/row[v>0]/v)' -` if [ $? != 0 ] ; then echo "Error. exiting." exit fi - if [ "$_o" == "0.0000000000e+00" -o "$_o" == "NaN" ] ;then - echo "$1 is empty" + if [ "$_o" == "" -o "$_o" == "0.0000000000e+00" -o "$_o" == "NaN" ] ;then + debug $1 "$2 is empty" return 1 fi + if [ "$1" == "ne" ] ; then + echo "$2 has data" + fi return 0 } +category_msc() { + mkdir $1 + cd $1 + for f in ../statsd/derive-msc.0.$1.* ; do + ln -s $f $1-`echo $f | awk -F'.' '{print $6}'`.rrd + done + cd .. +} + +category_bsc() { + mkdir $1 + cd $1 + for f in ../statsd/derive-bsc.0.$1.* ; do + ln -s $f $1-`echo $f | awk -F'.' '{print $6}'`.rrd + done + cd .. +} + +category_bts() { + _name=`bname $2` + mkdir $1-$_name + cd $1-$_name + for f in ../statsd/derive-bts.$2.$1.* ; do + ln -s $f $1-`echo $f | awk -F'.' '{print $6}'`.rrd + done + cd .. +} + +category_bts_g() { + _name=`bname $2` + mkdir $1-$_name + cd $1-$_name + for f in ../statsd/gauge-bts.$2.$1.* ; do + ln -s $f $1-`echo $f | awk -F'.' '{print $6}'`.rrd + done + cd .. +} + +once() { + + cd /var/lib/collectd/rrd/$(hostname -f) + + #rm -rf sms + #mkdir -p sms + #cd sms + #for f in ../statsd/derive-msc.0.sms.* ; do + # ln -s $f sms-`echo $f | awk -F'.' '{print $6}'`.rrd + #done + #cd .. + + for item in sms loc_update_type; do + rm -rf $item + category_msc $item $bts + done + + for item in location_update chreq chan_sdcch chan_tch; do + rm -rf $item-* + for bts in "${!BTS[@]}" ; do + category_bts $item $bts + done + done + + for item in oml_connected chanloadavg chan_ccch_sdcch4 chan_sdcch8 chan_tch_h chan_osmo_dyn lchan_borken; do + rm -rf $item-* + for bts in "${!BTS[@]}" ; do + category_bts_g $item $bts + done + done + + rm -rf BTS_uptime-* + for bts in "${!BTS[@]}" ; do + _name=`bname $bts` + mkdir BTS_uptime-$_name + cd BTS_uptime-$_name + for f in ../statsd/gauge-bts.$bts.uptime.* ; do + ln -s $f uptime-`echo $f | awk -F'.' '{print $6}'`.rrd + done + cd .. + done + + find -name chreq-total.rrd -type l -delete +} + +if [ "$1" == "" ] ; then + echo "Please pass 1 argument" + exit +fi + +. /home/rhizomatica/bin/vars.sh + +if [ "$1" == "once" ] ; then + once + exit +fi + cd /var/lib/collectd/rrd/$(hostname -f) -rm -rf gauge-* derive-* +rm -rf gauge-* derive-* sms if [ ! -d statsd ] ; then echo "No statsd directory" exit fi -for f in statsd/* ; do #gauge-bts.0* statsd/*msc.0* statsd/*vlr.0*; do - echo "Checking $f" - is_empty $f +for f in statsd/* ; do + debug $1 "Checking $f" + is_empty $1 $f if [ $? == 1 ] ; then continue ; fi mkdir $(basename $f .rrd) cd $(basename $f .rrd)