-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathperf.py
More file actions
35 lines (27 loc) · 859 Bytes
/
perf.py
File metadata and controls
35 lines (27 loc) · 859 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from dateutil.parser import parse
import sys
# Measure Boomi process using the log
def get_measured_lines(filename):
measurements = []
prev_date = None
prev_line = None
with open(filename) as log_file:
for line in log_file:
words = line.split()
cur_date = parse(words[0])
if prev_date is not None:
measurements.append(((cur_date - prev_date).total_seconds(), \
prev_line, '', ' '.join(words[2:])))
prev_date = cur_date
prev_line = ' '.join(words[2:])
return measurements
def print_lines(lines):
for line in lines:
if (int(line[0]) > 2): # 2 secs
print ("%10d %s\n%10s %s\n%s" % (line + (''.ljust(150, '-'),)))
def start(filename):
lines = get_measured_lines(filename)
lines.sort(reverse=True)
print_lines(lines)
if __name__ == '__main__':
start(sys.argv[1] if len(sys.argv) > 1 else "c:\\temp\\process.log")