github.com/pingcap/tiflow@v0.0.0-20240520035814-5bf52d54e205/dm/tests/_utils/check_metric (about) 1 #!/bin/bash 2 # parameter 1: port 3 # parameter 2: metric name 4 # parameter 3: retry count, if check failed we will wait 1s before next retry, until retry time exceeds retry count 5 # parameter 4...: valid value list 6 7 set -eu 8 9 port=$1 10 metric_name=$2 11 retry_count=$3 12 lower=$4 13 upper=$5 14 15 shift 3 16 17 counter=0 18 while [ $counter -lt $retry_count ]; do 19 metric=$(curl -s http://127.0.0.1:$port/metrics | grep $metric_name | grep -v "#" | awk '{printf("%d",$2)}') 20 if [ -n $metric ] && [ $lower -lt $metric ] && [ $metric -lt $upper ]; then 21 exit 0 22 fi 23 ((counter += 1)) 24 echo "wait for valid metric of $metric_name for $counter-th time, got value: '$metric'" 25 sleep 1 26 done 27 28 echo "metric $metric_name has invalid value $metric" 29 exit 1