diff --git a/src/lego_monitoring/__init__.py b/src/lego_monitoring/__init__.py index 16bde25..75e1312 100644 --- a/src/lego_monitoring/__init__.py +++ b/src/lego_monitoring/__init__.py @@ -56,7 +56,11 @@ async def async_main(): sender.send_alert(checks.generate_start_alert()), IntervalChecker(checks.self_check, interval=datetime.timedelta(minutes=5), persistent=False), ], - check_sets.CPU: [IntervalChecker(checks.cpu_check, interval=datetime.timedelta(minutes=3), persistent=True)], + check_sets.CPU: [ + IntervalChecker( + checks.cpu_check, interval=datetime.timedelta(minutes=3), persistent=True, ignore_first_run=True + ) + ], check_sets.RAM: [IntervalChecker(checks.ram_check, interval=datetime.timedelta(minutes=1), persistent=True)], check_sets.TEMP: [IntervalChecker(checks.temp_check, interval=datetime.timedelta(minutes=5), persistent=True)], check_sets.VULNIX: [ diff --git a/src/lego_monitoring/core/checkers.py b/src/lego_monitoring/core/checkers.py index 78168bf..d3e4a0f 100644 --- a/src/lego_monitoring/core/checkers.py +++ b/src/lego_monitoring/core/checkers.py @@ -87,14 +87,19 @@ class BaseChecker: class IntervalChecker(BaseChecker): _: KW_ONLY interval: datetime.timedelta + ignore_first_run: bool = False async def run_checker(self) -> None: interval_secs = self.interval.total_seconds() + ignore_first_run = self.ignore_first_run while True: logging.info(f"Calling {self.check.__name__}") result = await self._call_check() logging.info(f"Got {len(result)} alerts") - await self._handle_alerts(result) + if ignore_first_run: + ignore_first_run = False + else: + await self._handle_alerts(result) await asyncio.sleep(interval_secs)