callstats-from-telemetry.sh 1.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
#1/bin/env bash
set -e

usage() {
cat << EOF
usage: $0 OPTIONS RESULTS_DIR

Convert telemetry json trace result to callstats.html compatible
versions ot ./out.json

OPTIONS:
  -h           Show this message.
  RESULTS_DIR  tools/perf/artifacts/run_XXX
EOF
}


while getopts ":h" OPTION ; do
  case $OPTION in
    h)  usage
        exit 0
        ;;
    ?)  echo "Illegal option: -$OPTARG"
        usage
        exit 1
        ;;
  esac
done

# =======================================================================

RESULTS_DIR=$1

if [[ ! -e "$RESULTS_DIR" ]]; then
  echo "RESULTS_DIR '$RESULTS_DIR' not found";
  usage;
  exit 1;
fi


OUT=out.json

if [[ -e $OUT ]]; then
  cp --backup=numbered $OUT $OUT.bak
fi


echo '{ "telemetry-results": { "placeholder":{}' > $OUT

for PAGE_DIR in $RESULTS_DIR/*_1; do
  PAGE=`basename $PAGE_DIR`;
  JSON="$PAGE_DIR/trace/traceEvents/*_converted.json";
  du -sh $JSON;
  echo "Converting PAGE=$PAGE";
  echo "," >> $OUT;
  echo "\"$PAGE\": " >> $OUT;
  jq '[.traceEvents[].args | select(."runtime-call-stats" != null) | ."runtime-call-stats"]' $JSON >> $OUT;
done


echo '}}' >> $OUT