/var/lib/pcp/testsuite/455 is in pcp-testsuite 4.0.1-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | #! /bin/sh
# PCP QA Test No. 455
# Sanity checks for rsyslog pmda
#
# Copyright (c) 2011 Aconex. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard filters
. ./common.product
. ./common.check
. ./common.filter
[ -d $PCP_PMDAS_DIR/rsyslog ] || _notrun "rsyslog PMDA directory is not installed"
grep rsyslog.elasticsearch.submits $PCP_PMDAS_DIR/rsyslog/pmdarsyslog.pl >/dev/null
[ $? -eq 0 ] || _notrun "Newer version of rsyslog PMDA needed"
perl -e "use PCP::PMDA" >/dev/null 2>&1
test $? -eq 0 || _notrun "PCP::PMDA perl module is not installed"
install_on_cleanup=false
pminfo rsyslog >/dev/null 2>&1 && install_on_cleanup=true
status=1
done_clean=false
_cleanup()
{
if $done_clean
then
:
else
if [ -f $tmp.pmcd.conf ]
then
$sudo cp $tmp.pmcd.conf $PCP_PMCDCONF_PATH
rm -f $tmp.pmcd.conf
fi
_service pcp restart | _filter_pcp_start
_wait_for_pmcd
_wait_for_pmlogger
if $install_on_cleanup
then
( cd $PCP_PMDAS_DIR/rsyslog; $sudo ./Install </dev/null >/dev/null 2>&1 )
else
( cd $PCP_PMDAS_DIR/rsyslog; $sudo ./Remove >/dev/null 2>&1 )
fi
done_clean=true
fi
$sudo rm -f $tmp.*
exit $status
}
_filter()
{
# number of warnings depends on rsyslog config
sed \
-e '/Creating rsyslog statistics file/d' \
-e 's/ [0-9]* warnings/ some warnings/g'
}
_val_filter()
{
$PCP_AWK_PROG '
/^rsyslog\.interval/ { fix = 1 }
fix == 1 && /value [0-9][0-9]*/ { $2 = "NUMBER" }
{ print }
NF == 0 { fix = 0 }'
}
trap "_cleanup" 0 1 2 3 15
# real QA test starts here
iam=rsyslog
cd $PCP_PMDAS_DIR/$iam
# copy the pmcd config file to restore state later.
cp $PCP_PMCDCONF_PATH $tmp.pmcd.conf
# start from a known starting point
$sudo ./Remove >/dev/null 2>&1
$sudo rm -f pmns domain.h
echo
echo "=== $iam agent installation ==="
$sudo rm -f $PCP_LOG_DIR/rsyslog/stats
$sudo ./Install </dev/null >$tmp.out 2>&1
_filter_pmda_install <$tmp.out \
| _filter
echo
echo "=== validate values ==="
rm -f $tmp.stats
echo "\
2011-05-11T08:18:02.420771+10:00 host rsyslogd-pstats: imuxsock: submitted=85 ratelimit.discarded=0 ratelimit.numratelimiters=24
2011-05-11T08:18:02.420797+10:00 host rsyslogd-pstats: main Q: size=1181 enqueued=1181 full=0 maxqsize=1181
2011-05-11T08:18:07.423713+10:00 host rsyslogd-pstats: imuxsock: submitted=85 ratelimit.discarded=0 ratelimit.numratelimiters=24
2011-05-11T08:18:07.423752+10:00 host rsyslogd-pstats: main Q: size=1 enqueued=1183 full=0 maxqsize=1182" > $tmp.stats
for i in 1 2 3 4 5
do
[ -p $PCP_LOG_DIR/rsyslog/stats ] && break
sleep 1
done
if [ ! -p $PCP_LOG_DIR/rsyslog/stats ]
then
echo "Arrgh failed to see named pipe $PCP_LOG_DIR/rsyslog/stats after 5 seconds"
ls -l $PCP_LOG_DIR/rsyslog
exit
fi
$sudo sh -c "cat $tmp.stats >> $PCP_LOG_DIR/rsyslog/stats"
sleep 2 # give some time for pmdarsyslog to be told
$sudo sh -c "cat $tmp.stats >> $PCP_LOG_DIR/rsyslog/stats"
sleep 2 # give more time for pmdarsyslog to be told
pminfo rsyslog \
| LC_COLLATE=POSIX sort \
| while read metric
do
pminfo -f $metric
done \
| _val_filter
echo
echo "=== remove $iam agent ==="
$sudo ./Remove >$tmp.out 2>&1
_filter_pmda_remove <$tmp.out
status=0
exit
|