mirror of
https://forgejo.altau.su/lego/lego-monitoring.git
synced 2026-03-10 04:41:10 +00:00
disabling checks
This commit is contained in:
parent
40a92932a2
commit
ae1204449c
4 changed files with 34 additions and 14 deletions
|
|
@ -28,3 +28,7 @@ ForceCommand /opt/lego-monitoring/wrappers/login_wrapper.sh
|
|||
* `prettyprint.py` -- check and print all sensors
|
||||
* `service.py` -- launch service
|
||||
* `assets/lego-monitoring.service` is a systemd unit that starts `service.py`
|
||||
|
||||
### Disabling checks
|
||||
|
||||
Put names of checks into config's `disabled_checks` to disable them. See `service.py` for check names.
|
||||
|
|
|
|||
|
|
@ -26,5 +26,8 @@
|
|||
"login": {
|
||||
"hostname": "example.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disabled_checks": [
|
||||
"nonexistent_check"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ class ChecksConfig(NestedDeserializableDataclass):
|
|||
class Config(NestedDeserializableDataclass):
|
||||
matrix: MatrixConfig
|
||||
checks: ChecksConfig
|
||||
disabled_checks: list[str]
|
||||
|
||||
|
||||
def get_config() -> Config:
|
||||
|
|
|
|||
38
service.py
38
service.py
|
|
@ -44,22 +44,34 @@ async def main():
|
|||
loop = asyncio.get_event_loop()
|
||||
loop.add_signal_handler(signal.SIGUSR1, lambda: asyncio.create_task(delayed.handler()))
|
||||
|
||||
cvars.config.set(get_config())
|
||||
config = get_config()
|
||||
cvars.config.set(config)
|
||||
|
||||
client = await alerts.get_client()
|
||||
cvars.matrix_client.set(client)
|
||||
checkers = (
|
||||
interval_checker(checks.temp_check, datetime.timedelta(minutes=5)),
|
||||
interval_checker(checks.cpu_check, datetime.timedelta(minutes=5)),
|
||||
interval_checker(checks.ups_check, datetime.timedelta(minutes=5)),
|
||||
interval_checker(checks.ram_check, datetime.timedelta(minutes=1)),
|
||||
interval_checker(checks.vuln_check, datetime.timedelta(days=1)),
|
||||
interval_checker(checks.raid_check, datetime.timedelta(days=1)),
|
||||
interval_checker(checks.disk_wearout_check, datetime.timedelta(days=1)),
|
||||
scheduled_checker(
|
||||
checks.docker_registry_check, period=datetime.timedelta(days=1), when=datetime.time(hour=0, minute=0)
|
||||
),
|
||||
)
|
||||
|
||||
checker_sets = {
|
||||
"temp": [interval_checker(checks.temp_check, datetime.timedelta(minutes=5))],
|
||||
"cpu": [interval_checker(checks.cpu_check, datetime.timedelta(minutes=5))],
|
||||
"ups": [interval_checker(checks.ups_check, datetime.timedelta(minutes=5))],
|
||||
"ram": [interval_checker(checks.ram_check, datetime.timedelta(minutes=1))],
|
||||
"vuln": [interval_checker(checks.vuln_check, datetime.timedelta(days=1))],
|
||||
"raid": [interval_checker(checks.raid_check, datetime.timedelta(days=1))],
|
||||
"disk_wearout": [interval_checker(checks.disk_wearout_check, datetime.timedelta(days=1))],
|
||||
"docker_registry": [
|
||||
scheduled_checker(
|
||||
checks.docker_registry_check, period=datetime.timedelta(days=1), when=datetime.time(hour=0, minute=0)
|
||||
)
|
||||
],
|
||||
}
|
||||
for disabled_key in config.disabled_checks:
|
||||
if disabled_key in checker_sets:
|
||||
del checker_sets[disabled_key]
|
||||
checkers = []
|
||||
for _, s in checker_sets.items():
|
||||
for checker in s:
|
||||
checkers.append(checker)
|
||||
|
||||
async with asyncio.TaskGroup() as tg:
|
||||
checker_tasks: set[asyncio.Task] = set()
|
||||
for c in checkers:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue