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