Collectd updates

This commit is contained in:
Keith Whyte 2023-03-24 23:00:56 +01:00
parent 51760b1bcf
commit bb0d187fef

View file

@ -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)