Opto is-dead Specifications
There are three things we need to monitor to make sure Opto is running correctly. This will be part of the watchdog program.
- The OPC Server - This is the data broker that transmits the data between the Hardware and the PC.
- The Opto Data Link - This transmits the data from the OPC server to the Database.
- The MySql Database - This is where the data is actually logged.
- Opto Display Runtime - Isn't strictly required, but we can still check for it.
Naming
- is-Opto-dead
- Opto-is-dead
- OptoStatusMonitor
- OptoHeartbeat
- OptoLifeCheck
- OptoProcessPulse
- OptoWatchdog
Functional Specifications
High Level
- Constantly running process.
- How often to check?
- Include both is-dead/is-alive functionality.
- Communication of dead-events via text message.
Monitoring Requirements
Process Health Checks
- Verify process is running
- Potential improvements/expansions:
- Monitor memory usage
- Track CPU utilization
Alert Management
- Send alerts via SMS when a process ends
- Potential improvements/expansions:
- Store events in a database
- Check Windows Events
Automated Process Management (Maybe?)
- Restart monitored processes when they crash up to a maximum number of times in a time span
Design Specifications
- Python script
- Define configurations in file type ___:
- process names
- what else?
- Iterate through processes
- Check each process for life
- Log (MySQL?) and Send notification
- Check each process for life
- Run as a Windows Scheduled Task
System Architecture
Core Components
- Monitoring Service
- Configuration Management
- Alert System
- Logging System
Data Storage (MySQL)
- Status History
- Alert History
- System Metrics
- Configuration Data (config file)
Communication
- Alert Notifications
- Status Reports
- System Commands (Windows)
- Health Check Results
Resilience Requirements
- Recovery
- Automatic restart procedures?