From b828989d8c2af8fb528cb6621418228abf981198 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 16 Jul 2026 13:06:51 +0200 Subject: [PATCH] check-health.d/temperature: give the cpu utilization in notification... ... to give a first hint if high load is an issue. --- check-health.d/temperature.rsc | 7 +++++-- .../notification-06-temperature-high.avif | Bin 3659 -> 4132 bytes .../notification-07-temperature-ok.avif | Bin 3839 -> 4343 bytes 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/check-health.d/temperature.rsc b/check-health.d/temperature.rsc index 36975cfe..9337d22d 100644 --- a/check-health.d/temperature.rsc +++ b/check-health.d/temperature.rsc @@ -14,6 +14,7 @@ :local FuncName [ :tostr $0 ]; :local ScriptName [ :tostr $1 ]; + :global CheckHealthCPUUtilization; :global CheckHealthLast; :global CheckHealthTemperature; :global CheckHealthTemperatureDeviation; @@ -57,7 +58,8 @@ $SendNotification2 ({ origin=$ScriptName; \ subject=([ $SymbolForNotification "fire" ] . "Health warning: " . $Name); \ message=("The " . $Name . " on " . $Identity . " is above threshold: " . \ - $Value . "\C2\B0" . "C") }); + $Value . "\C2\B0C\n\n" . "The average CPU utilization is at " . \ + ($CheckHealthCPUUtilization / 10) . "%!") }); :set ($CheckHealthTemperatureNotified->$Name) true; } :if ($Value <= ($CheckHealthTemperature->$Name - $CheckHealthTemperatureDeviation) && \ @@ -65,7 +67,8 @@ $SendNotification2 ({ origin=$ScriptName; \ subject=([ $SymbolForNotification "white-heavy-check-mark" ] . "Health recovery: " . $Name); \ message=("The " . $Name . " on " . $Identity . " dropped below threshold: " . \ - $Value . "\C2\B0" . "C") }); + $Value . "\C2\B0C\n\n" . "The average CPU utilization is at " . \ + ($CheckHealthCPUUtilization / 10) . "%!") }); :set ($CheckHealthTemperatureNotified->$Name) false; } } diff --git a/doc/check-health.d/notification-06-temperature-high.avif b/doc/check-health.d/notification-06-temperature-high.avif index 908e8f2e7c7417ed4f2c206214ef285b67ea5241..a1b4195a4513c747867ee129fc18bb9ff2aaa376 100644 GIT binary patch delta 3911 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 M6wz*n;!?d3a8&@GuK)l5 diff --git a/doc/check-health.d/notification-07-temperature-ok.avif b/doc/check-health.d/notification-07-temperature-ok.avif index 8f509e8d8f702695e30baa9f7af40eb33100b789..c0f5c8a5e1004319b9a6e9b04bd3dec9ed440e14 100644 GIT binary patch delta 4124 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