blob: 06b673772d292c45b263ad3708f2e45b45022563 [file] [log] [blame]
# Gawk script that takes the output of a relative_times report test
# that was generated with a startcount and startdelay flood scenario
# and breaks down the times to show how the performance during each
# startdelay period for which there is data.
#
# This should serve as an advanced example of how to process data from
# flood with awk. And, probably as an example of how Justin codes
# at 12AM falling asleep on his keyboard.
BEGIN {
currentperiod = 0
# Should be passed in now
#users = 5
#delay = 180
duration = delay * 1000000
periods = 0
}
/OK.*https?/ {
split($8, urlarray, /\?/)
if (currentperiod == 0)
{
currentperiod = $1 + duration
}
else if (currentperiod < $1)
{
currentperiod += duration
periods++
}
url = urlarray[1]
ht[url, periods] = url
co[url, periods] += ($2/1000000)
wr[url, periods] += ($3/1000000)
re[url, periods] += ($4/1000000)
cl[url, periods] += ($5/1000000)
# These two are used to refer back...
pd[url, periods] = periods
urls[url] = url
cou[url, periods]++
}
END {
for (p = 0; p < periods; p++) {
printf(" Average times (sec) - Period %d (%d users)\n", p, (p+1)*users)
printf("connect\twrite\tread\tclose\thits\tURL\n")
for (u in urls) {
if (cou[u, p] != 0) {
printf("%.4f\t%.4f\t%.4f\t%.4f\t%d\t%s\n", co[u, p]/cou[u, p], wr[u,p]/cou[u,p], re[u,p]/cou[u,p], cl[u,p]/cou[u,p], cou[u,p], ht[u,p]) | "sort -rn +3 | head -5"
}
}
close("sort -rn +3 | head -5")
}
}