mirror of
https://forgejo.altau.su/lego/lego-monitoring.git
synced 2026-03-10 04:41:10 +00:00
/status and /ongoing
This commit is contained in:
parent
62a25410cc
commit
6cc3966221
6 changed files with 121 additions and 47 deletions
|
|
@ -6,7 +6,8 @@ import signal
|
|||
from typing import Coroutine
|
||||
|
||||
from . import checks
|
||||
from .alerting import channel
|
||||
from .alerting import sender
|
||||
from .alerting.commands import CommandHandlerManager
|
||||
from .checks.temp.sensors import print_readings
|
||||
from .config import enums as config_enums
|
||||
from .config import load_config
|
||||
|
|
@ -48,13 +49,15 @@ async def async_main():
|
|||
|
||||
logging.basicConfig(level=config.log_level)
|
||||
|
||||
tg_client = await channel.get_client()
|
||||
cvars.tg_client.set(tg_client)
|
||||
tg_client = await sender.get_client()
|
||||
|
||||
cvars.tg_client.set(tg_client)
|
||||
my_username = (await tg_client.get_me()).username
|
||||
logging.info(f"Logged in as @{my_username}")
|
||||
check_sets = config_enums.CheckSet
|
||||
|
||||
checker_sets: dict[config_enums.CheckSet, list[Coroutine | BaseChecker]] = {
|
||||
check_sets.START: [channel.send_start_alert()],
|
||||
check_sets.START: [sender.send_start_alert()],
|
||||
check_sets.STOP: [], # this is checked later
|
||||
check_sets.CPU: [IntervalChecker(checks.cpu_check, interval=datetime.timedelta(minutes=3), persistent=True)],
|
||||
check_sets.RAM: [IntervalChecker(checks.ram_check, interval=datetime.timedelta(minutes=1), persistent=True)],
|
||||
|
|
@ -76,17 +79,21 @@ async def async_main():
|
|||
period=datetime.timedelta(days=1),
|
||||
when=datetime.time(hour=0, minute=0),
|
||||
persistent=False,
|
||||
is_reminder=True,
|
||||
)
|
||||
],
|
||||
}
|
||||
|
||||
checker_sets[check_sets.REMIND][0].check_args = [checker_sets]
|
||||
|
||||
checkers = []
|
||||
for enabled_set in config.enabled_check_sets:
|
||||
for checker in checker_sets[enabled_set]:
|
||||
checkers.append(checker)
|
||||
|
||||
checker_sets[check_sets.REMIND][0].check_args = checkers
|
||||
|
||||
command_manager = CommandHandlerManager(checkers)
|
||||
await command_manager.attach_handlers(tg_client)
|
||||
|
||||
signal.signal(signal.SIGTERM, stop_gracefully)
|
||||
|
||||
async with asyncio.TaskGroup() as tg:
|
||||
|
|
@ -99,7 +106,7 @@ async def async_main():
|
|||
while True:
|
||||
if stopping:
|
||||
if "stop" in config.enabled_check_sets:
|
||||
await channel.send_stop_alert()
|
||||
await sender.send_stop_alert()
|
||||
await tg_client.disconnect()
|
||||
raise SystemExit
|
||||
else:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue