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
|
* `prettyprint.py` -- check and print all sensors
|
||||||
* `service.py` -- launch service
|
* `service.py` -- launch service
|
||||||
* `assets/lego-monitoring.service` is a systemd unit that starts `service.py`
|
* `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": {
|
"login": {
|
||||||
"hostname": "example.com"
|
"hostname": "example.com"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"disabled_checks": [
|
||||||
|
"nonexistent_check"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,7 @@ class ChecksConfig(NestedDeserializableDataclass):
|
||||||
class Config(NestedDeserializableDataclass):
|
class Config(NestedDeserializableDataclass):
|
||||||
matrix: MatrixConfig
|
matrix: MatrixConfig
|
||||||
checks: ChecksConfig
|
checks: ChecksConfig
|
||||||
|
disabled_checks: list[str]
|
||||||
|
|
||||||
|
|
||||||
def get_config() -> Config:
|
def get_config() -> Config:
|
||||||
|
|
|
||||||
32
service.py
32
service.py
|
|
@ -44,22 +44,34 @@ async def main():
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_event_loop()
|
||||||
loop.add_signal_handler(signal.SIGUSR1, lambda: asyncio.create_task(delayed.handler()))
|
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()
|
client = await alerts.get_client()
|
||||||
cvars.matrix_client.set(client)
|
cvars.matrix_client.set(client)
|
||||||
checkers = (
|
|
||||||
interval_checker(checks.temp_check, datetime.timedelta(minutes=5)),
|
checker_sets = {
|
||||||
interval_checker(checks.cpu_check, datetime.timedelta(minutes=5)),
|
"temp": [interval_checker(checks.temp_check, datetime.timedelta(minutes=5))],
|
||||||
interval_checker(checks.ups_check, datetime.timedelta(minutes=5)),
|
"cpu": [interval_checker(checks.cpu_check, datetime.timedelta(minutes=5))],
|
||||||
interval_checker(checks.ram_check, datetime.timedelta(minutes=1)),
|
"ups": [interval_checker(checks.ups_check, datetime.timedelta(minutes=5))],
|
||||||
interval_checker(checks.vuln_check, datetime.timedelta(days=1)),
|
"ram": [interval_checker(checks.ram_check, datetime.timedelta(minutes=1))],
|
||||||
interval_checker(checks.raid_check, datetime.timedelta(days=1)),
|
"vuln": [interval_checker(checks.vuln_check, datetime.timedelta(days=1))],
|
||||||
interval_checker(checks.disk_wearout_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(
|
scheduled_checker(
|
||||||
checks.docker_registry_check, period=datetime.timedelta(days=1), when=datetime.time(hour=0, minute=0)
|
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:
|
async with asyncio.TaskGroup() as tg:
|
||||||
checker_tasks: set[asyncio.Task] = set()
|
checker_tasks: set[asyncio.Task] = set()
|
||||||
for c in checkers:
|
for c in checkers:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue