diff options
Diffstat (limited to 'potpourri/gc_summary.awk')
-rw-r--r-- | potpourri/gc_summary.awk | 72 |
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"; +} |