pmrep: update TODO, man page
[pcp.git] / qa / 294
blobbb598c6df6798f30f420a9ce1290d464eb17f8f8
1 #! /bin/sh
2 # PCP QA Test No. 294
3 # Basic pmproxy functionality
5 # Copyright (c) 2005 Silicon Graphics, Inc. All Rights Reserved.
8 seq=`basename $0`
9 echo "QA output created by $seq"
11 # get standard environment, filters and checks
12 . ./common.product
13 . ./common.filter
14 . ./common.check
16 which pmdumptext >/dev/null 2>&1 || _notrun "No installed pmdumptext binary"
18 #debug# tmp=`pwd`/tmp
19 signal=$PCP_BINADM_DIR/pmsignal
20 status=1 # failure is the default!
21 username=`id -u -n`
22 $sudo rm -rf $tmp.*
23 trap "_cleanup; rm -f $tmp.*; exit \$status" 0 1 2 3 15
25 _cleanup()
27 $sudo $signal -a pmproxy >/dev/null 2>&1
28 $sudo $PCP_RC_DIR/pmproxy restart >/dev/null 2>&1
31 _filter()
33 sed \
34 -e '/hinv/s/ [0-9][0-9]*$/ N/' \
35 -e '/^[A-Z][a-z][a-z] [A-Z][a-z][a-z] *[0-9][0-9]* [0-9][0-9]:[0-9][0-9]:[0-9][0-9]/{
36 # pmdumptext
37 s//DATE/
38 s/ [0-9][0-9.]*/ N/g
39 }' \
40 -e '/^\[[A-Z][a-z][a-z] [A-Z][a-z][a-z] *[0-9][0-9]* [0-9][0-9]:[0-9][0-9]:[0-9][0-9]]/{
41 # pmie trailer
42 s//[DATE]/
43 s/([0-9][0-9]*)/(PID)/
44 }' \
45 -e '/expr_1/s/ *[0-9][0-9.]*/ N/g' \
46 -e '/^@ [A-Z][a-z][a-z] [A-Z][a-z][a-z] *[0-9][0-9]* [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][[0-9][0-9][0-9]/{
47 # pmstat header1
48 s//@ DATE/
49 }' \
50 -e '/^ 1 min swpd free buff cache pi po bi bo in cs us sy id/{
51 # pmstat header3
52 s// 1 min swpd free buff cache si so bi bo in cs us sy id/
53 }' \
54 -e '/[0-9.]*[0-9Km] *[0-9.]*[0-9Km] *[0-9.]*[0-9Km] *[0-9.]*[0-9Km] *[0-9.]*[0-9Km]/{
55 # pmstat data
56 s/ *[0-9.]*[0-9Km]/ N/g
57 }' \
58 | _filter_me
61 _filter_me()
63 sed \
64 -e "s/`hostname`/MY_HOSTNAME/g" \
65 -e "s/`hostname | sed -e 's/\..*//'`/MY_HOSTNAME/" \
66 -e "s/local:/MY_HOSTNAME/" \
67 -e "s/localhost\.localdomain/MY_HOSTNAME/" \
68 -e "s/localhost/MY_HOSTNAME/" \
69 -e "s#$PCP_VAR_DIR#PCP_VAR_DIR#g" \
70 -e "s#$PCP_SYSCONF_DIR/pmlogger/config.pmstat#TMP.logger.config#g" \
71 -e "s,$tmp.config,TMP.logger.config,g" \
72 -e "s#$tmp#TMP#g"
75 _filter_pmproxy()
77 sed \
78 -e '/^__pmSetSocketIPC: fd=/d' \
79 -e '/^__pmSetDataIPC:/d' \
80 -e '/^__pmDataIPC: /d' \
81 -e '/^IPC table fd/d' \
85 _do()
87 echo
88 echo "+++ $* +++" | tee -a $seq.full | _filter_me
89 if which $1 >/dev/null 2>&1
90 then
91 eval $* 2>&1 | tee -a $seq.full | _filter
92 echo "`grep AcceptNewClient $tmp.log | wc -l | sed -e 's/ *//g'` connects"
93 echo "`grep DeleteClient $tmp.log | wc -l | sed -e 's/ *//g'` disconnects"
94 else
95 echo "Skipped, no $1 binary installed"
99 _do_config()
101 cat >$tmp.config <<End-of-File
102 log advisory on default {
103 kernel.all.load
104 swap.used
105 mem.util.free
106 mem.util.bufmem
107 mem.bufmem
108 mem.util.cached
109 swap.in
110 swap.pagesin
111 swap.out
112 swap.pagesout
113 disk.all.blkread
114 disk.all.blkwrite
115 kernel.all.intr
116 kernel.all.intr.non_vme
117 kernel.all.pswitch
118 kernel.all.cpu
120 End-of-File
123 $sudo $PCP_RC_DIR/pmproxy stop >/dev/null 2>&1
124 $sudo $signal -a pmproxy >/dev/null 2>&1
126 proxyargs="-Dcontext"
127 id pcp >/dev/null 2>&1 && proxyargs="$proxyargs -U $username"
128 $PCP_BINADM_DIR/pmproxy $proxyargs -l $tmp.log 2>&1 | _filter_pmproxy
130 PMPROXY_HOST=localhost
131 export PMPROXY_HOST
133 rm -f $seq.full
135 # real QA test starts here
136 _do pminfo -h $PMPROXY_HOST -d pmcd.agent
137 _do pminfo -h $PMPROXY_HOST -f sample.hordes
138 _do pmprobe -v -h localhost hinv.ncpu
139 _do pmval -h `hostname` -t 0.5 -s 3 sample.bin
141 echo "kernel.all.load;" >$tmp.in
142 _do pmie -h $PMPROXY_HOST -c $tmp.in -v -t 0.5 -T 1.5
143 echo "kernel.all.cpu.user :localhost;" >$tmp.in
144 _do pmie -h $PMPROXY_HOST -c $tmp.in -v -t 0.5 -T 1.5
145 _do pmdumptext -h `hostname` -t 0.5 -s 2 sample.string.hullo
146 _do pmdumptext -t 0.5 -s 2 localhost:sample.string.hullo
147 _do pmdumptext -t 0.5 -s 2 `hostname`:kernel.all.load
149 # Note: there used to be special casing for Darwin/Solaris platforms
150 # here. This is wrong, pmstat must still run on these platforms and
151 # produce no values for some columns.
153 _do pmstat -h $PMPROXY_HOST -t 0.5 -s 2
154 _do_config
155 _do pmlogger -h localhost -c $tmp.config -t 0.5sec -s 3 -l $tmp.logger.log $tmp.arch
156 _do pmstat -S +0.25sec -t 0.5sec -a $tmp.arch -z
158 # success, all done
159 status=0
160 exit