2ef5655bd3035cd875ba214f259bd46437c3a666
[iec.git] / src / tools / test_service_latency.sh
1 set -e
2
3 localIP=$(ip route show default | cut -d " " -f 9)
4 echo "localIP:"$localIP
5
6 if [ "x${1}" == "x" ]; then
7 echo "No node IP defined, uses the local IP instead."
8 fi
9
10 nodeIP=$localIP
11 aNum=1000
12
13
14 display_help () {
15   echo "Usage:"
16   echo " "
17   echo "Please input the nodeIP and access number"
18 }
19
20 #svcIP=$(kubectl get svc | grep nginx |grep -i "nodeport" | awk -F'[ ]+' '{print $3}')
21 #echo "Service IP:"$svcIP
22 #nodePort=$(kubectl get svc | grep nginx |grep -i "nodeport" | awk -F'[ ]+' '{print $5}' | cut -d ":" -f 2 |cut -d "/" -f 1)
23 #echo "NodePort:"$nodePort
24
25
26 ARGS=`getopt -a -o s:n:c:p:k::h:: -l nodeIP:,number:,serviceIP:,nodePort:,nodeOnly::,help:: -- "$@"`
27 eval set -- "${ARGS}"
28 while true
29 do
30         case "$1" in
31         -s|--nodeIP)
32                 nodeIP="$2"
33                 echo "nodeIP=$2"
34                 shift
35                 ;;
36         -n|--number)
37                 aNum="$2"
38                 echo "access number=$2"
39                 shift
40                 ;;
41         -c|--serviceIP)
42                 svcIP="$2"
43                 echo "Service IP=$2"
44                 shift
45                 ;;
46         -p|--nodePort)
47                 nodePort="$2"
48                 echo "nodePort=$2"
49                 shift
50                 ;;
51         -k|--nodeOnly)
52                 nodeOnly="true"
53                 echo "Ignore accessing service IP test."
54                 echo "nodeOnly=true"
55                 ;;
56         -h|--help)
57                 echo "this is help case"
58                 display_help
59                 exit 0
60                 ;;
61         --)
62                 echo ""
63                 echo "Use default args, now do the test:"
64                 echo ""
65                 shift
66                 break
67                 ;;
68         esac
69 shift
70 done
71
72
73 if [[ "x${svcIP}" == "x"  &&  ${onlyNode} != "true" ]]; then
74   echo "No service IP defined, try to find locally:"
75   svcIP=$(kubectl get svc | grep nginx |grep -i "nodeport" | awk -F'[ ]+' '{print $3}')
76   echo "Service IP:"$svcIP
77 fi
78
79 if [ "x${nodePort}" == "x" ]; then
80   echo "No nodePort defined, try to find locally:"
81   nodePort=$(kubectl get svc | grep nginx |grep -i "nodeport" | awk -F'[ ]+' '{print $5}' | cut -d ":" -f 2 |cut -d "/" -f 1)
82   echo "NodePort:"$nodePort
83 fi
84
85
86 accessNum=$((aNum + 0))
87 #for i in {1..$(($aNum + 0))} 
88 START=1
89 END=$aNum
90
91
92 if [ "x${nodeOnly}" != "xtrue" ]; then
93   echo "Now access the service IP $svcIP:80, $aNum times:"
94   for (( c=$START; c<=$END; c++))
95   do 
96     curl -w "%{time_total}\n" -o /dev/null -s http://$svcIP
97   done | jq -s add/length
98 fi
99
100 echo ""
101 echo "Now access the $nodeIP:$nodePort, $aNum times"
102 for (( c=$START; c<=$END; c++))
103 do
104     curl -w "%{time_total}\n" -o /dev/null -s $nodeIP:$nodePort
105 done | jq -s add/length