#/usr/bin/env python from datetime import date from math import floor from pprint import pprint from sys import stdin read_ops = {} write_ops = {} read_bytes = {} write_bytes = {} req_ops = {} res_ops = {} read = write = nops = 0 opnames = [ 'null', 'getattr', 'setattr', 'lookup', 'access', 'ireadlink', 'read', 'write', 'create', 'mkdir', 'symlink', 'mkdir', 'remove', 'rmdir', 'rename', 'link', 'readdir', 'readdir+', 'fsstat', 'fsinfo', 'pathconf', 'commit', ] header1 = stdin.readline() header2 = stdin.readline() for line in stdin: line = line.rstrip() fields = line.split() try: if fields[6] == 'request': key = fields[9] try: req_ops[key] = req_ops[key] + 1 except KeyError: req_ops[key] = 1 if fields[9] == '7': write = write + int(fields[12]) key = date.fromtimestamp(floor(int(fields[0]) / 1000000)).strftime("%Y%m%d%H") try: write_ops[key] = write_ops[key] + 1 except KeyError: write_ops[key] = 1 try: write_bytes[key] = write_bytes[key] + int(fields[12]) except KeyError: write_bytes[key] = int(fields[12]) elif fields[6] == 'response': key = fields[9] try: res_ops[key] = res_ops[key] + 1 except KeyError: res_ops[key] = 1 if fields[9] == '6': read = read + int(fields[12]) key = date.fromtimestamp(floor(int(fields[0]) / 1000000)).strftime("%Y%m%d%H") try: read_ops[key] = read_ops[key] + 1 except KeyError: read_ops[key] = 1 try: read_bytes[key] = read_bytes[key] + int(fields[12]) except KeyError: read_bytes[key] = int(fields[12]) except IndexError: continue for key, value in sorted(req_ops.iteritems(), key=lambda x : x[1]): print "%s: \t%s\n" % (opnames[int(key)], value) nops = nops + req_ops[key] print "---\n" print pprint(res_ops) print "===\n" print "===\n" print pprint(write_ops) print "===---\n" print pprint(write_bytes) print "===\n" print pprint(read_ops) print "===---\n" print pprint(read_bytes)