File: callstats-from-telemetry.sh

package info (click to toggle)
chromium 139.0.7258.127-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,122,068 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (85 lines) | stat: -rwxr-xr-x 1,653 bytes parent folder | download | duplicates (13)
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#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
  OUT="${JSON%.json}.rcs.json"
elif [[ -e "$1" ]]; then
  echo "Converting results dir"
  RESULTS_DIR=$1
  OUT="${RESULTS_DIR}/combined.rcs.json"
else
  echo "RESULTS_DIR '$RESULTS_DIR' not found";
  usage;
  exit 1;
fi


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


echo ""
echo "RESULT: ${OUT}"