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
|
#!/bin/sh
# PCP QA Test No. 352
#
# derived metrics and pmlogger ...
#
# Copyright (c) 2010 Ken McDonell. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check
status=0 # success is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
cat <<End-of-File >$tmp.derive
sample.long.nine = sample.long.ten - sample.long.one
sample.long.nine(oneline) = 'This should be 9!'
sample.long.ninety_nine = sample.long.hundred - sample.long.one
sample.long.ninety_nine(helptext) = "Since this is 100 minus 1, we'd expect the answer to be exactly
>>> 99 <<<
on most days"
sample.long.lots = sample.long.million - sample.long.hundred
sample.long.lots(oneline) = "This should be 999900!"
sample.long.lots(helptext) = 'Since this is 1,0000 minus 100 the answer is expected to be very
close to 999900, n\'est ce pas?'
End-of-File
cat <<End-of-File >$tmp.config
log mandatory on 100msec {
sample.long.one
sample.long.ten
sample.long.nine
sample.long.ninety_nine
sample.long.lots
}
End-of-File
_filter()
{
sed \
-e "s;$tmp;TMP;g" \
-e '/pmcd\./d' \
# end
}
# make this ...
# labels {"agent":"sample","domainname":"localdomain","groupid":1000,"hostname":"bozo.localdomain","machineid":"6c78e37f87514105b535e855a43de6ac","role":"testing","userid":1000}
# deterministic
#
userid=`id -u`
groupid=`id -g`
hostname=`hostname`
machineid=`_machine_id`
domainname=`_domain_name`
_filter_labels()
{
sed \
-e "s/\(\"userid\"\):$userid\([^0-9]\)/\1:USERID\2/g" \
-e "s/\(\"groupid\"\):$groupid\([^0-9]\)/\1:GROUPID\2/g" \
-e "s/\(\"hostname\"\):\"$hostname\"/\1:\"HOSTNAME\"/g" \
-e "s/\(\"machineid\"\):\"$machineid\"/\1:\"MACHINEID\"/g" \
-e "s/\(\"domainname\"\):\"$domainname\"/\1:\"DOMAINNAME\"/g" \
| _filter_optional_labels
}
unset PCP_DERIVED_CONFIG
# real QA test starts here
echo "Expect this to fail as derived metrics not defined ..."
rm -f $tmp.0 $tmp.meta $tmp.index $tmp.log
pmlogger -c $tmp.config -l $tmp.log -s 2 $tmp
cat $tmp.log >>$seq_full
_filter_pmlogger_log <$tmp.log | _filter
pmdumplog -mh $tmp | tee -a $seq_full | _filter_pmdumplog | _filter
echo | tee -a $seq_full
echo "Now with derived metrics defined ..." | tee -a $seq_full
export PCP_DERIVED_CONFIG=$tmp.derive
pminfo -f `grep sample $tmp.config`
rm -f $tmp.0 $tmp.meta $tmp.index $tmp.log
pmlogger -c $tmp.config -l $tmp.log -s 3 $tmp
cat $tmp.log >>$seq_full
_filter_pmlogger_log <$tmp.log | _filter
unset PCP_DERIVED_CONFIG
pmdumplog -mh $tmp | tee -a $seq_full | _filter_pmdumplog | _filter
# pmval -a $tmp -t 0.1sec sample.long.nine
pminfo -ftTl -a $tmp -O 0.05 sample.long \
| _filter_labels
# success, all done
exit
|