• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#1/bin/env bash
2set -e
3
4usage() {
5cat << EOF
6usage: $0 OPTIONS RESULTS_DIR | TRACE_JSON
7
8Convert telemetry json trace result to callstats.html compatible
9versions ot ./out.json
10
11OPTIONS:
12  -h           Show this message.
13  RESULTS_DIR  tools/perf/artifacts/run_XXX
14  TRACE_JSON   .json trace files
15EOF
16}
17
18
19while getopts ":h" OPTION ; do
20  case $OPTION in
21    h)  usage
22        exit 0
23        ;;
24    ?)  echo "Illegal option: -$OPTARG"
25        usage
26        exit 1
27        ;;
28  esac
29done
30
31# =======================================================================
32
33if [[ "$1" == *.json ]]; then
34  echo "Converting json files"
35  JSON=$1
36elif [[ -e "$1" ]]; then
37  echo "Converting reults dir"
38  RESULTS_DIR=$1
39else
40  echo "RESULTS_DIR '$RESULTS_DIR' not found";
41  usage;
42  exit 1;
43fi
44
45
46OUT=out.json
47if [[ -e $OUT ]]; then
48  echo "# Creating backup for $OUT"
49  cp $OUT $OUT.bak
50fi
51echo "# Writing to $OUT"
52
53
54function convert {
55  NAME=$1
56  JSON=$2
57  # Check if any json file exists:
58  if ls $JSON 1> /dev/null 2>&1; then
59    du -sh $JSON;
60    echo "Converting NAME=$NAME";
61    echo "," >> $OUT;
62    echo "\"$NAME\": " >> $OUT;
63    jq '[.traceEvents[].args | select(."runtime-call-stats" != null) | ."runtime-call-stats"]' $JSON >> $OUT;
64  fi
65}
66
67
68echo '{ "telemetry-results": { "placeholder":{}' > $OUT
69if [[ $RESULTS_DIR ]]; then
70  for PAGE_DIR in $RESULTS_DIR/*_1; do
71    NAME=`basename $PAGE_DIR`;
72    JSON="$PAGE_DIR/trace/traceEvents/*_converted.json";
73    convert $NAME $JSON
74  done
75else
76  for JSON in $@; do
77    convert $JSON $JSON
78  done
79fi
80echo '}}' >> $OUT
81