import weblog.combined, sys, time, math
def getTimeslice(period, utime):
low = int(math.floor(utime)) - period + 1
high = int(math.ceil(utime)) + 1
for x in range(low, high):
if x % period == 0:
return x
def main(files):
START = time.mktime([2001,11,12,9,0,0,0,0,0])
END = time.mktime([2001,11,12,10,0,0,0,0,0])
t = 0
slices = {}
for file in files:
print file
log = weblog.combined.Parser(open(file))
i = 0
while log.getlogent():
if log.utime<START or log.utime>END: continue
slice = getTimeslice(60, log.utime)
if slices.get(slice) is None:
slices[slice] = 1
else:
slices[slice]=slices[slice]+1
i=i+1
print i
t = t + i
avg = None
peak = 0
peak_ts = 0
for ts in slices.keys():
if avg is None:
avg = slices[ts]
else:
avg = (avg + slices[ts]) / 2
if slices[ts] > peak:
peak = slices[ts]
peak_ts = ts
print "Total: %s" % t
print "Average: %s" % avg
print "Peak: %s (at %s seconds)" % (peak, peak_ts)
if __name__ == '__main__':
files = sys.argv[1:]
main(files)