1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #1/bin/env bash
- set -e
- usage() {
- cat << EOF
- usage: $0 OPTIONS RESULTS_DIR | TRACE_JSON
- 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
- TRACE_JSON .json trace files
- EOF
- }
- while getopts ":h" OPTION ; do
- case $OPTION in
- h) usage
- exit 0
- ;;
- ?) echo "Illegal option: -$OPTARG"
- usage
- exit 1
- ;;
- esac
- done
- # =======================================================================
- if [[ "$1" == *.json ]]; then
- echo "Converting json files"
- JSON=$1
- elif [[ -e "$1" ]]; then
- echo "Converting reults dir"
- RESULTS_DIR=$1
- else
- echo "RESULTS_DIR '$RESULTS_DIR' not found";
- usage;
- exit 1;
- fi
- OUT=out.json
- if [[ -e $OUT ]]; then
- echo "# Creating backup for $OUT"
- cp $OUT $OUT.bak
- fi
- echo "# Writing to $OUT"
- function convert {
- NAME=$1
- JSON=$2
- # Check if any json file exists:
- if ls $JSON 1> /dev/null 2>&1; then
- du -sh $JSON;
- echo "Converting NAME=$NAME";
- echo "," >> $OUT;
- echo "\"$NAME\": " >> $OUT;
- jq '[.traceEvents[].args | select(."runtime-call-stats" != null) | ."runtime-call-stats"]' $JSON >> $OUT;
- fi
- }
- echo '{ "telemetry-results": { "placeholder":{}' > $OUT
- if [[ $RESULTS_DIR ]]; then
- for PAGE_DIR in $RESULTS_DIR/*_1; do
- NAME=`basename $PAGE_DIR`;
- JSON="$PAGE_DIR/trace/traceEvents/*_converted.json";
- convert $NAME $JSON
- done
- else
- for JSON in $@; do
- convert $JSON $JSON
- done
- fi
- echo '}}' >> $OUT
|