diff options
-rw-r--r-- | check-health | 16 | ||||
-rw-r--r-- | doc/check-health.d/notification-01-cpu-load-high.avif | bin | 0 -> 6066 bytes | |||
-rw-r--r-- | doc/check-health.d/notification-02-cpu-load-ok.avif | bin | 0 -> 6378 bytes | |||
-rw-r--r-- | doc/check-health.d/notification-03-voltage.avif (renamed from doc/check-health.d/notification-01-voltage.avif) | bin | 4053 -> 4053 bytes | |||
-rw-r--r-- | doc/check-health.d/notification-04-temperature-high.avif (renamed from doc/check-health.d/notification-02-temperature-high.avif) | bin | 3615 -> 3615 bytes | |||
-rw-r--r-- | doc/check-health.d/notification-05-temperature-ok.avif (renamed from doc/check-health.d/notification-03-temperature-ok.avif) | bin | 3763 -> 3763 bytes | |||
-rw-r--r-- | doc/check-health.d/notification-06-psu-fail.avif (renamed from doc/check-health.d/notification-04-psu-fail.avif) | bin | 3544 -> 3544 bytes | |||
-rw-r--r-- | doc/check-health.d/notification-07-psu-ok.avif (renamed from doc/check-health.d/notification-05-psu-ok.avif) | bin | 3561 -> 3561 bytes | |||
-rw-r--r-- | doc/check-health.md | 20 | ||||
-rw-r--r-- | global-functions | 1 |
10 files changed, 30 insertions, 7 deletions
diff --git a/check-health b/check-health index e754d69..3957ad1 100644 --- a/check-health +++ b/check-health @@ -10,6 +10,8 @@ :global GlobalFunctionsReady; :while ($GlobalFunctionsReady != true) do={ :delay 500ms; } +:global CheckHealthCPULoad; +:global CheckHealthCPULoadNotified; :global CheckHealthLast; :global CheckHealthTemperature; :global CheckHealthTemperatureDeviation; @@ -43,6 +45,20 @@ $ScriptLock $0; +:set CheckHealthCPULoad (($CheckHealthCPULoad * 4 + [ /system/resource/get cpu-load ] * 10) / 5); +:if ($CheckHealthCPULoad > 750 && $CheckHealthCPULoadNotified != true) do={ + $SendNotification2 ({ origin=$0; \ + subject=([ $SymbolForNotification "abacus,chart-increasing" ] . "Health warning: CPU load"); \ + message=("The average CPU load on " . $Identity . " is at " . ($CheckHealthCPULoad / 10) . "%!") }); + :set CheckHealthCPULoadNotified true; +} +:if ($CheckHealthCPULoad < 650 && $CheckHealthCPULoadNotified = true) do={ + $SendNotification2 ({ origin=$0; \ + subject=([ $SymbolForNotification "abacus,chart-decreasing" ] . "Health recovery: CPU load"); \ + message=("The average CPU load on " . $Identity . " decreased to " . ($CheckHealthCPULoad / 10) . "%.") }); + :set CheckHealthCPULoadNotified false; +} + :foreach Voltage in=[ /system/health/find where type="V" ] do={ :local Name [ /system/health/get $Voltage name ]; :local Value [ /system/health/get $Voltage value ]; diff --git a/doc/check-health.d/notification-01-cpu-load-high.avif b/doc/check-health.d/notification-01-cpu-load-high.avif Binary files differnew file mode 100644 index 0000000..3c1a468 --- /dev/null +++ b/doc/check-health.d/notification-01-cpu-load-high.avif diff --git a/doc/check-health.d/notification-02-cpu-load-ok.avif b/doc/check-health.d/notification-02-cpu-load-ok.avif Binary files differnew file mode 100644 index 0000000..4f12b70 --- /dev/null +++ b/doc/check-health.d/notification-02-cpu-load-ok.avif diff --git a/doc/check-health.d/notification-01-voltage.avif b/doc/check-health.d/notification-03-voltage.avif Binary files differindex f4d6005..f4d6005 100644 --- a/doc/check-health.d/notification-01-voltage.avif +++ b/doc/check-health.d/notification-03-voltage.avif diff --git a/doc/check-health.d/notification-02-temperature-high.avif b/doc/check-health.d/notification-04-temperature-high.avif Binary files differindex 1a93610..1a93610 100644 --- a/doc/check-health.d/notification-02-temperature-high.avif +++ b/doc/check-health.d/notification-04-temperature-high.avif diff --git a/doc/check-health.d/notification-03-temperature-ok.avif b/doc/check-health.d/notification-05-temperature-ok.avif Binary files differindex 3bb9c68..3bb9c68 100644 --- a/doc/check-health.d/notification-03-temperature-ok.avif +++ b/doc/check-health.d/notification-05-temperature-ok.avif diff --git a/doc/check-health.d/notification-04-psu-fail.avif b/doc/check-health.d/notification-06-psu-fail.avif Binary files differindex a4e52a9..a4e52a9 100644 --- a/doc/check-health.d/notification-04-psu-fail.avif +++ b/doc/check-health.d/notification-06-psu-fail.avif diff --git a/doc/check-health.d/notification-05-psu-ok.avif b/doc/check-health.d/notification-07-psu-ok.avif Binary files differindex bcc5a39..bcc5a39 100644 --- a/doc/check-health.d/notification-05-psu-ok.avif +++ b/doc/check-health.d/notification-07-psu-ok.avif diff --git a/doc/check-health.md b/doc/check-health.md index 07151ff..b498998 100644 --- a/doc/check-health.md +++ b/doc/check-health.md @@ -12,32 +12,38 @@ Description This script is run from scheduler periodically, sending notification on health related events: +* high CPU load * voltage jumps up or down more than configured threshold or drops below limit * power supply failed or recovered * temperature is above or below threshold Note that bad initial state will not trigger an event. -Only sensors available in hardware can be checked. See what your -hardware supports: +Monitoring CPU load works on all devices. Other than that only sensors +available in hardware can be checked. See what your hardware supports: /system/health/print; ### Sample notifications +#### CPU load + +![check-health notification cpu load high](check-health.d/notification-01-cpu-load-high.avif) +![check-health notification cpu load ok](check-health.d/notification-02-cpu-load-ok.avif) + #### Voltage -![check-health notification voltage](check-health.d/notification-01-voltage.avif) +![check-health notification voltage](check-health.d/notification-03-voltage.avif) #### Temperature -![check-health notification](check-health.d/notification-02-temperature-high.avif) -![check-health notification](check-health.d/notification-03-temperature-ok.avif) +![check-health notification temperature high](check-health.d/notification-04-temperature-high.avif) +![check-health notification temperature ok](check-health.d/notification-05-temperature-ok.avif) #### PSU state -![check-health notification](check-health.d/notification-04-psu-fail.avif) -![check-health notification](check-health.d/notification-05-psu-ok.avif) +![check-health notification psu fail](check-health.d/notification-06-psu-fail.avif) +![check-health notification psu ok](check-health.d/notification-07-psu-ok.avif) Requirements and installation ----------------------------- diff --git a/global-functions b/global-functions index bfb7b01..0e94dea 100644 --- a/global-functions +++ b/global-functions @@ -1075,6 +1075,7 @@ # return UTF-8 symbol for unicode name :set SymbolByUnicodeName do={ :local Symbols { + "abacus"="\F0\9F\A7\AE"; "alarm-clock"="\E2\8F\B0"; "calendar"="\F0\9F\93\85"; "chart-decreasing"="\F0\9F\93\89"; |