improved cpu load trigger
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user