aboutsummaryrefslogtreecommitdiff
path: root/potpourri/gc_summary.awk
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2014-04-05 22:42:12 +0000
committerRob Austein <sra@hactrn.net>2014-04-05 22:42:12 +0000
commitfe0bf509f528dbdc50c7182f81057c6a4e15e4bd (patch)
tree07c9a923d4a0ccdfea11c49cd284f6d5757c5eda /potpourri/gc_summary.awk
parentaa28ef54c271fbe4d52860ff8cf13cab19e2207c (diff)
Source tree reorg, phase 1. Almost everything moved, no file contents changed.
svn path=/branches/tk685/; revision=5757
Diffstat (limited to 'potpourri/gc_summary.awk')
-rw-r--r--potpourri/gc_summary.awk72
1 files changed, 72 insertions, 0 deletions
diff --git a/potpourri/gc_summary.awk b/potpourri/gc_summary.awk
new file mode 100644
index 00000000..b3b1bc6a
--- /dev/null
+++ b/potpourri/gc_summary.awk
@@ -0,0 +1,72 @@
+#!/usr/bin/awk -f
+
+# $Id$
+#
+# Copyright (C) 2010 Internet Systems Consortium ("ISC")
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+# Use gnuplot to graph interesting data from gc_summary lines in rpkid logs.
+
+BEGIN {
+ target = ENVIRON["TARGET"] ? ENVIRON["TARGET"] : "tuple";
+ outtype = ENVIRON["OUTTYPE"] ? ENVIRON["OUTTYPE"] : "png";
+ outname = ENVIRON["OUTNAME"] ? ENVIRON["OUTNAME"] : "";
+ print "set xdata time";
+ print "set timefmt '%Y-%m-%dT%H:%M:%S'";
+ #print "set format x '%d%b'";
+ print "set format x '%T'";
+ print "set key right bottom";
+ if (outname) {
+ print "set terminal", outtype;
+ print "set output '" outname "." outtype "'";
+ print "set term png size 1024,1024";
+ }
+ if (ARGC <= 2) {
+ print "plot '-' using 1:2 with linespoints title 'rpkid use of", target, "objects'";
+ } else {
+ cmd = "plot '-' using 1:2 with linespoints title '" ARGV[1] "'";
+ for (i = 2; i < ARGC; i++)
+ cmd = cmd ", '-' using 1:2 with linespoints title '" ARGV[i] "'";
+ print cmd;
+ }
+}
+
+FILENAME != filename && filename {
+ print "e";
+}
+
+FILENAME != filename {
+ print "#", FILENAME
+ filename = FILENAME;
+ proc = "";
+}
+
+$6 == target && proc != $3 && proc {
+ print "";
+}
+
+$6 == target && proc != $3 {
+ proc = $3;
+}
+
+$6 == target {
+ print "#", $0;
+ print $1 "T" $2, $5;
+}
+
+END {
+ print "e";
+ if (!outname)
+ print "pause mouse any";
+}