Admin/isatest-statistics
changeset 20614 948ad402c8a7
parent 20612 706c22b3a8fb
child 20615 0d71cc267e0d
equal deleted inserted replaced
20613:8f2731bfe86f 20614:948ad402c8a7
    13 PRG="$(basename "$0")"
    13 PRG="$(basename "$0")"
    14 
    14 
    15 function usage()
    15 function usage()
    16 {
    16 {
    17   echo
    17   echo
    18   echo "Usage: $PRG PLATFORM TIMESPAN SESSIONS..."
    18   echo "Usage: $PRG DIR PLATFORM TIMESPAN SESSIONS..."
    19   echo
    19   echo
    20   echo "  Produce statistics from isatest session logs,"
    20   echo "  Produce statistics from isatest session logs, looking TIMESPAN"
    21   echo "  looking TIMESPAN days into the past."
    21   echo "  days into the past.  Outputs .png files into DIR."
    22   echo
    22   echo
    23   exit 1
    23   exit 1
    24 }
    24 }
    25 
    25 
    26 function fail()
    26 function fail()
    31 
    31 
    32 
    32 
    33 ## arguments
    33 ## arguments
    34 
    34 
    35 [ "$1" = "-?" ] && usage
    35 [ "$1" = "-?" ] && usage
    36 [ "$#" -lt "3" ] && usage
    36 [ "$#" -lt "4" ] && usage
    37 
    37 
       
    38 DIR="$1"; shift
    38 PLATFORM="$1"; shift
    39 PLATFORM="$1"; shift
    39 TIMESPAN="$1"; shift
    40 TIMESPAN="$1"; shift
    40 SESSIONS="$@"
    41 SESSIONS="$@"
    41 
    42 
    42 
    43 
    43 ## main
    44 ## main
    44 
    45 
    45 ALL_DATA="/tmp/isatest-all$$.dat"
    46 ALL_DATA="/tmp/isatest-all$$.dat"
    46 SESSION_DATA="/tmp/isatest$$.dat"
    47 SESSION_DATA="/tmp/isatest$$.dat"
       
    48 mkdir -p "$DIR" || fail "Bad directory: $DIR"
    47 
    49 
    48 zgrep "^Finished .*elapsed" \
    50 zgrep "^Finished .*elapsed" \
    49   $(find -name "isatest-makeall-${PLATFORM}*" -ctime "-${TIMESPAN}") | \
    51   $(find "$ISATEST_LOG" -name "isatest-makeall-${PLATFORM}*" -ctime "-${TIMESPAN}") | \
    50 perl -e '
    52 perl -e '
    51   while (<>) {
    53   while (<>) {
    52     if (m/isatest-makeall-\w+-\w+-(\d+)-(\d+)-(\d+)-.*:Finished (\S+) \(.*, (\d+):(\d+):(\d+) cpu time\)/) {
    54     if (m/isatest-makeall-\w+-\w+-(\d+)-(\d+)-(\d+)-.*:Finished (\S+) \(.*, (\d+):(\d+):(\d+) cpu time\)/) {
    53         my $year = $1;
    55         my $year = $1;
    54         my $month = $2;
    56         my $month = $2;
    55         my $day = $3;
    57         my $day = $3;
    56         my $name = $4;
    58         my $name = $4;
    57         my $h = $5;
    59         my $time = ($5 * 3600 + $6 * 60 + $7) / 60;
    58         my $m = $6;
       
    59         my $s = $7;
       
    60 
    60 
    61         my $date = $year + ($month - 1) / 31 + ($day - 1) / 365;
    61         printf "$name $year-$month-$day %.2f\n", $time;
    62         my $time = ($h * 3600 + $m * 60 + $s) / 60;
       
    63 
       
    64         printf "%s %.2f %.2f\n", $name, $date, $time;
       
    65     }
    62     }
    66   }' > "$ALL_DATA"
    63   }' > "$ALL_DATA"
    67 
    64 
    68 for SESSION in $SESSIONS
    65 for SESSION in $SESSIONS
    69 do
    66 do
    70   fgrep "$SESSION " "$ALL_DATA" > "$SESSION_DATA"
    67   fgrep "$SESSION " "$ALL_DATA" > "$SESSION_DATA"
    71   gnuplot <<EOF
    68   gnuplot <<EOF
    72 set terminal png
    69 set terminal png
    73 set output "${SESSION}.png"
    70 set output "$DIR/${SESSION}.png"
    74 plot [] [0:50] "$SESSION_DATA" using 2:3 title "$SESSION" smooth sbezier, "$SESSION_DATA" using 2:3 title "$SESSION" smooth csplines
    71 set xdata time
       
    72 set timefmt "%Y-%m-%d"
       
    73 set format x "%d-%b"
       
    74 set xlabel "$SESSION"
       
    75 plot [] [0:] "$SESSION_DATA" using 2:3 title "" smooth sbezier, "$SESSION_DATA" using 2:3 title "" smooth csplines
    75 EOF
    76 EOF
    76 done
    77 done
    77 
    78 
    78 rm -f "$ALL_DATA" "$SESSION_DATA"
    79 rm -f "$ALL_DATA" "$SESSION_DATA"