Sentinel is a hobby project that I made out of my curiosity of concurrency. :)
HTTP failed request rate: 80.02%
Total warn level: 166464
Total error level: 277719
logging done in 2.724436083sThis was done with 1 ingestor, 10 parsers, 10 filterers, and 1 aggregator with 1 million log entries.
- Ingest
Reads log file line by line - Parse
Unmarshals JSON log entries in parallel - Filter
Keeps only relevant entries (WARN, ERROR, and HTTP requests) - Merge
Combines output from all filter workers into a single channel - Aggregate
Calculates health metrics - Report
Display final statistics
- Each stage runs in its own goroutine
- Channels connect stages, enabling concurrent processing
- WaitGroups ensure proper shutdown and resource cleanup
- Error channel handles failures without blocking the pipeline
This is a hobby project for learning purposes. Feel free to use and modify as you like! :)