github.com/pingcap/tiflow@v0.0.0-20240520035814-5bf52d54e205/dm/tests/_utils/check_two_metric_equal (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  metric1_name=$2
    11  metric2_name=$3
    12  retry_count=$4
    13  
    14  counter=0
    15  while [ $counter -lt $retry_count ]; do
    16  	metric1=$(curl -s http://127.0.0.1:$port/metrics | grep $metric1_name | grep -v "#" | awk '{print $2}')
    17  	metric2=$(curl -s http://127.0.0.1:$port/metrics | grep $metric2_name | grep -v "#" | awk '{print $2}')
    18  	if [ $metric1 -eq $metric2 ]; then
    19  		echo "matched"
    20  		exit 0
    21  	fi
    22  	((counter += 1))
    23  	echo "wait for valid metric for $counter-th time"
    24  	sleep 1
    25  done
    26  
    27  echo "metric1 and metric2 not equal"
    28  exit 1