You are provided with a log file containing entries from multiple servers. Each log entry is formatted as follows:
[timestamp] [server_id] [event_type]
timestamp
is in ISO 8601 format (e.g., 2025-03-16T14:23:05Z).server_id
is a unique identifier for the server.event_type
can be values like INFO, WARNING, or ERROR.Your task is to write a program that processes this log file and identifies periods during which the number of ERROR events exceeds a given threshold within a sliding time window (in minutes). The program should output a summary that includes:
The program should handle large log files efficiently and allow the user to configure both the error threshold and the window size in minutes. Edge cases, such as log files with no ERROR events or when the window spans the end of the file, should also be considered.
Design and implement this solution ensuring clarity, efficiency, and scalability.