improved cpu load trigger

This commit is contained in:
2025-03-10 15:55:41 +01:00
parent 1f9beae3e8
commit c077476e0b
3 changed files with 24 additions and 7 deletions
+20 -5
View File
@@ -13,22 +13,37 @@ class CpuLoadTrigger(Trigger):
@cached_property
def one_minute_load_threshold(self) -> float:
return float(self.config.custom_config['oneMinuteLoadThreshold'])
@cached_property
def five_minute_load_threshold(self) -> float:
return float(self.config.custom_config['fiveMinuteLoadThreshold'])
@cached_property
def ten_minute_load_threshold(self) -> float:
return float(self.config.custom_config['tenMinuteLoadThreshold'])
@cached_property
def threshold(self) -> tuple[float, float, float]:
return self.one_minute_load_threshold, self.five_minute_load_threshold, self.ten_minute_load_threshold
@property
def current_load(self) -> float:
_current_load = getloadavg()[0]
def current_load(self) -> tuple[float, float, float]:
_current_load = getloadavg()
self.log.debug("current load: %s", _current_load)
return _current_load
def current_load_average_over_threshold(self) -> bool:
return any(load >= threshold for load, threshold in zip(self.current_load, self.threshold))
def run(self) -> None:
current_active = self.active
current_time = datetime.now()
new_active = self.current_load >= self.one_minute_load_threshold
new_active = self.current_load_average_over_threshold()
if not current_active and new_active:
self.log.info(
"activating trigger, load: %s, threshold: %s, governor: %s",
self.current_load, self.one_minute_load_threshold, self.governor.name
self.current_load, self.threshold, self.governor.name
)
self.timestamp_last_governor_change = current_time
@@ -39,7 +54,7 @@ class CpuLoadTrigger(Trigger):
self.log.info(
"deactivating trigger, load: %s, threshold: %s, governor: %s",
self.current_load, self.one_minute_load_threshold, self.governor.name
self.current_load, self.threshold, self.governor.name
)
self.active = new_active