#! /usr/local/bin/perl
# summary2gp.pl : generate input data for gnuplot from summary of log.
# Usage: cat summary* | summary2gp.pl
open (GP1, ">gp-data.a") || die("gp-data.a");
open (GP2, ">gp-data.b") || die("gp-data.b");
open (GP3, ">gp-data.c") || die("gp-data.c");
open (GP4, ">gp-data.d") || die("gp-data.d");
open (GP5, ">gp-data.e") || die("gp-data.e");
open (GP6, ">gp-data.f") || die("gp-data.f");
while (<>) {
chop;
next if (/^#/);
@data = split(',');
# next if ($data[9] > 3000); # ignore too slow completion
# next if ($data[6] < 0); # ignore tsendmail=-1
next if ($data[2] < 10); # ignore too small recipients
next if ($data[4] < 10); # ignore too small transactions
#####
next if ($data[2] < 3000);
next if ($data[2] > 4000);
#####
$data[6] = 0 if ($data[6] < 0);
# par recipient
print GP1 "1, 2, 3, 4, 5, 6, 7, ";
printf GP1 "%d, %d, %d, %d, %d, %d, %d\n",
$data[2], $data[6], $data[7], $data[8], $data[9],
$data[6] + $data[7] + $data[8],
$data[6] + $data[7] + $data[9];
# par transaction
print GP2 "1, 2, 3, 4, 5, 6, 7, ";
printf GP2 "%d, %d, %d, %d, %d, %d, %d\n",
$data[4], $data[6], $data[7], $data[8], $data[9],
$data[6] + $data[7] + $data[8],
$data[6] + $data[7] + $data[9];
# average par recipient
print GP3 "1, 2, 3, 4, 5, 6, 7, ";
printf GP3 "%d, %f, %f, %f, %f, %f, %f\n",
$data[2],
$data[6] / $data[2], $data[7] / $data[2],
$data[8] / $data[2], $data[9] / $data[2],
($data[6] + $data[7] + $data[8]) / $data[2],
($data[6] + $data[7] + $data[9]) / $data[2];
# average par transaction
print GP4 "1, 2, 3, 4, 5, 6, 7, ";
printf GP4 "%d, %f, %f, %f, %f, %f, %f\n",
$data[4],
$data[6] / $data[4], $data[7] / $data[4],
$data[8] / $data[4], $data[9] / $data[4],
($data[6] + $data[7] + $data[8]) / $data[4],
($data[6] + $data[7] + $data[9]) / $data[4];
($time1, $time2) = split(' ', $data[0]);
($M, $D) = split('/', $time1);
($h, $m, $s) = split(':', $time2);
$M -= 8; # XXX
$x = ((($M * 31 + $D) * 24 + $h) * 60 + $m) * 60 + $s;
# par recipient
print GP5 "1, 2, 3, 4, 5, 6, 7, ";
printf GP5 "%d, %f, %f, %f, %f, %f, %f\n",
$x,
$data[6] / $data[2], $data[7] / $data[2],
$data[8] / $data[2], $data[9] / $data[2],
($data[6] + $data[7] + $data[8]) / $data[2],
($data[6] + $data[7] + $data[9]) / $data[2];
# par transaction
print GP6 "1, 2, 3, 4, 5, 6, 7, ";
printf GP6 "%d, %f, %f, %f, %f, %f, %f\n",
$x,
$data[6] / $data[4], $data[7] / $data[4],
$data[8] / $data[4], $data[9] / $data[4],
($data[6] + $data[7] + $data[8]) / $data[4],
($data[6] + $data[7] + $data[9]) / $data[4];
}
exit 0;
syntax highlighted by Code2HTML, v. 0.9.1