Challenge Overview
We want a windows service to gather the the following metrics:
Log File Metrics
- monitor the log file size
- parse logged errors, it's a bit complicated as the files can get huge and we want to push errors at real time (once per couple seconds ~ minutes) we need to parse file delta instead, by tracking the position where the last parsed event ends; also log files sometimes rotate so if we notice a file shrink we need to reset the tracker
- The path to the log file should be configurable.
- The position (parsing offset) should be saved to the app configuration file.
- An example log file and its parser code are provided in the forum. Note that we are going to support the other log files as well, so please make your implementation as much flexible as possible.
- For testing purpose, please create a tool to increase the log file repeatedly.
Server Performance Metrics
- CPU & memory usage, track every few seconds and average for each push
The metrics above should be gathered repeatedly, and the results should be saved into a CSV file.
Final Submission Guidelines
Submission Deliverable
* Source Code
* Detailed Deployment Guide