The Server Monitoring and Notification System is a comprehensive solution designed to collect, analyze, and notify users about the performance of their servers. The system is divided into three main services:
This component focuses on collecting critical server statistics at regular intervals. Memory usage, available memory, and CPU usage are measured and encapsulated into a structured data object. The statistics are then published to a message queue, allowing for efficient data transfer.
this service receives server statistics from the message queue, persists the data to a MongoDB instance, and performs anomaly detection. Configurable thresholds in appsettings.json
trigger alerts for anomalies or high resource usage. The system utilizes SignalR to send real-time notifications, ensuring prompt awareness of critical server conditions.
This service establishes a connection to a SignalR hub and prints received events to the console. It enhances the monitoring system by providing a live stream of events, allowing users to stay informed about the server's status.
All services in the Server Monitoring and Notification System, including the Server Statistics Collection Service, Message Processing and Anomaly Detection Service, and SignalR Event Consumer Service, have been Dockerized. This approach involves encapsulating each service and its dependencies into lightweight containers. This ensures consistent behavior and enhances portability across different environments.