checkers are now objects, lay foundation for persistent alerts

This commit is contained in:
Alex Tau 2025-06-05 21:45:01 +03:00
parent 5d2759c63c
commit eef6ec59b0
12 changed files with 162 additions and 81 deletions

View file

@ -5,12 +5,12 @@ import logging
import signal
from . import checks
from .alerting import alerts
from .alerting import channel
from .checks.temp.sensors import print_readings
from .config import enums as config_enums
from .config import load_config
from .core import cvars
from .core.checkers import interval_checker
from .core.checkers import IntervalChecker
stopping = False
@ -47,18 +47,28 @@ async def async_main():
logging.basicConfig(level=config.log_level)
tg_client = await alerts.get_client()
tg_client = await channel.get_client()
cvars.tg_client.set(tg_client)
check_sets = config_enums.CheckSet
checker_sets = {
check_sets.START: [alerts.send_start_alert()],
check_sets.START: [channel.send_start_alert()],
check_sets.STOP: [], # this is checked later
check_sets.CPU: [interval_checker(checks.cpu_check, datetime.timedelta(minutes=5))],
check_sets.RAM: [interval_checker(checks.ram_check, datetime.timedelta(minutes=1))],
check_sets.TEMP: [interval_checker(checks.temp_check, datetime.timedelta(minutes=5))],
check_sets.VULNIX: [interval_checker(checks.vulnix_check, datetime.timedelta(days=3))],
check_sets.CPU: [
IntervalChecker(checks.cpu_check, interval=datetime.timedelta(minutes=5), persistent=True).run_checker()
],
check_sets.RAM: [
IntervalChecker(checks.ram_check, interval=datetime.timedelta(minutes=1), persistent=True).run_checker()
],
check_sets.TEMP: [
IntervalChecker(checks.temp_check, interval=datetime.timedelta(minutes=5), persistent=True).run_checker()
],
check_sets.VULNIX: [
IntervalChecker(
checks.vulnix_check, interval=datetime.timedelta(days=3), persistent=True, send_same_state=True
).run_checker()
],
}
checkers = []
@ -76,7 +86,7 @@ async def async_main():
while True:
if stopping:
if "stop" in config.enabled_check_sets:
await alerts.send_stop_alert()
await channel.send_stop_alert()
await tg_client.disconnect()
raise SystemExit
else: