-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbasic_processor.py
More file actions
30 lines (26 loc) · 953 Bytes
/
basic_processor.py
File metadata and controls
30 lines (26 loc) · 953 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
from utils import parse_log_line_to_dict
def basic_processor(file_path: str):
parsed_logs = []
with open(file_path, 'r') as f:
for log in f:
parsed_log = parse_log_line_to_dict(log)
if parsed_log:
parsed_logs.append(parsed_log)
total_logs = len(parsed_logs)
response_time = 0
status_codes_count = {}
for log in parsed_logs:
status_code = log['status_code']
response_time += log['response_time_ms']
if status_code not in status_codes_count:
status_codes_count[status_code] = 0
status_codes_count[status_code] += 1
avg_response_time = response_time / total_logs if total_logs > 0 else 0
return {
"total_logs": total_logs,
"avg_response_time_ms": avg_response_time,
"status_codes_count": status_codes_count
}
if __name__ == "__main__":
result = basic_processor("mock_logs.log")
print(result)