Admin/isatest/isatest-statistics
changeset 22410 da313b67a04d
child 24831 887d1b32a1a5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/isatest/isatest-statistics	Mon Mar 05 22:12:20 2007 +0100
@@ -0,0 +1,91 @@
+#!/usr/bin/env bash
+#
+# $Id$
+# Author: Makarius
+#
+# DESCRIPTION: Produce statistics from isatest session logs.
+
+ISATEST_LOG=~isatest/log
+
+## platform settings
+
+case $(uname) in
+	SunOS)	
+		ZGREP=xgrep 
+		TE="png color"
+	;;
+	*)	
+		ZGREP=zgrep
+		TE="png"
+	;;
+esac
+
+## diagnostics
+
+PRG="$(basename "$0")"
+
+function usage()
+{
+  echo
+  echo "Usage: $PRG DIR PLATFORM TIMESPAN SESSIONS..."
+  echo
+  echo "  Produce statistics from isatest session logs, looking TIMESPAN"
+  echo "  days into the past.  Outputs .png files into DIR."
+  echo
+  exit 1
+}
+
+function fail()
+{
+  echo "$1" >&2
+  exit 2
+}
+
+
+## arguments
+
+[ "$1" = "-?" ] && usage
+[ "$#" -lt "4" ] && usage
+
+DIR="$1"; shift
+PLATFORM="$1"; shift
+TIMESPAN="$1"; shift
+SESSIONS="$@"
+
+
+## main
+
+ALL_DATA="/tmp/isatest-all$$.dat"
+SESSION_DATA="/tmp/isatest$$.dat"
+mkdir -p "$DIR" || fail "Bad directory: $DIR"
+
+$ZGREP "^Finished .*elapsed" \
+  $(find "$ISATEST_LOG" -name "isatest-makeall-${PLATFORM}*" -ctime "-${TIMESPAN}") | \
+perl -e '
+  while (<>) {
+    if (m/isatest-makeall-.*-(\d+)-(\d+)-(\d+)-.*:Finished (\S+) \(.*, (\d+):(\d+):(\d+) cpu time\)/) {
+        my $year = $1;
+        my $month = $2;
+        my $day = $3;
+        my $name = $4;
+        my $time = ($5 * 3600 + $6 * 60 + $7) / 60;
+
+        printf "$name $year-$month-$day %.2f\n", $time;
+    }
+  }' > "$ALL_DATA"
+
+for SESSION in $SESSIONS
+do
+  fgrep "$SESSION " "$ALL_DATA" > "$SESSION_DATA"
+  gnuplot <<EOF
+set terminal $TE
+set output "$DIR/${SESSION}.png"
+set xdata time
+set timefmt "%Y-%m-%d"
+set format x "%d-%b"
+set xlabel "$SESSION"
+plot [] [0:] "$SESSION_DATA" using 2:3 smooth sbezier notitle, "$SESSION_DATA" using 2:3 smooth csplines notitle
+EOF
+done
+
+rm -f "$ALL_DATA" "$SESSION_DATA"