Skip to main content

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

  1. Constantly running process.
  2. How often to check?
  3. Include both is-dead/is-alive functionality.
  4. Communication of dead-events via text message.

Monitoring Requirements

  1. Process Health Checks

    • Verify process is running
    • Potential improvements/expansions:
      • Monitor memory usage
      • Track CPU utilization
  2. Alert Management

    • Send alerts via SMS when a process ends
    • Potential improvements/expansions:
      • Store events in a database
      • Check Windows Events
  3. Automated Process Management (Maybe?)

    • Restart monitored processes when they crash up to a maximum number of times in a time span

Design Specifications

  1. Python script
  2. Define configurations in file type ___:
    • process names
    • what else?
  3. Iterate through processes
    • Check each process for life
      • Log (MySQL?) and Send notification
  4. Run as a Windows Scheduled Task

System Architecture

  1. Core Components

    • Monitoring Service
    • Configuration Management
    • Alert System
    • Logging System
  2. Data Storage (MySQL)

    • Status History
    • Alert History
    • System Metrics
    • Configuration Data (config file)
  3. Communication

    • Alert Notifications
    • Status Reports
    • System Commands (Windows)
    • Health Check Results

Resilience Requirements

  1. Recovery
    • Automatic restart procedures?