github.com/m3db/m3@v1.5.1-0.20231129193456-75a402aa583b/src/cmd/services/m3query/scripts/prom-m3-diff.sh (about)

     1  #!/bin/bash
     2  # This script can be used to run the same query on prometheus as well as m3.
     3  # Sample usage: bash prom-m3-diff.sh "count_over_time(go_gc_duration_seconds[30s])" 1535125074
     4  target=${1?"Missing target, usage: $0 target start"}
     5  start=${2?"Missing start, usage: $0 target start"}
     6  duration=${3:-1000}
     7  step=${4:-"15s"}
     8  end=$((start + duration))
     9  m3port="localhost:7201"
    10  promport="localhost:9090"
    11  curl -fsS $promport/status > /dev/null || { echo "Prom port not open";  exit 1; }
    12  curl -fsS $m3port/health > /dev/null || { echo "M3Query port not open";  exit 1; }
    13  queryurl="/api/v1/query_range?start=$start&end=$end&step=$step --data-urlencode query=$target"
    14  m3url="$m3port/$queryurl"
    15  promurl="$promport/$queryurl"
    16  echo $m3url
    17  echo $promurl
    18  curl -G $m3url > m3out
    19  curl -G $promurl > promout
    20  jq ".data.result|.[]|.metric,.values" m3out > m3result
    21  jq ".data.result|.[]|.metric,.values" promout > promresult
    22  echo "M3 file size" $(stat -f%z m3result)
    23  echo "Prom file size" $(stat -f%z promresult)