mirror of
https://forgejo.altau.su/lego/lego-monitoring.git
synced 2026-03-10 04:41:10 +00:00
add temp monitoring
This commit is contained in:
parent
19ee6f487b
commit
758438382d
13 changed files with 272 additions and 25 deletions
|
|
@ -1,12 +1,16 @@
|
|||
import argparse
|
||||
import asyncio
|
||||
import datetime
|
||||
import logging
|
||||
import signal
|
||||
import time
|
||||
|
||||
from . import checks
|
||||
from .alerting import alerts
|
||||
from .checks.temp.sensors import print_readings
|
||||
from .config import load_config
|
||||
from .core import cvars
|
||||
from .core.config import load_config
|
||||
from .core.checkers import interval_checker
|
||||
|
||||
stopping = False
|
||||
|
||||
|
|
@ -27,11 +31,21 @@ async def async_main():
|
|||
prog="lego-monitoring",
|
||||
description="Lego-monitoring service",
|
||||
)
|
||||
parser.add_argument("-c", "--config", required=True)
|
||||
parser.add_argument("-c", "--config", help="config file")
|
||||
parser.add_argument("--print-temp", help="print temp sensor readings and exit", action="store_true")
|
||||
args = parser.parse_args()
|
||||
|
||||
config_path = parser.parse_args().config
|
||||
config = load_config(config_path)
|
||||
cvars.config.set(config)
|
||||
if args.config:
|
||||
config_path = parser.parse_args().config
|
||||
config = load_config(config_path)
|
||||
cvars.config.set(config)
|
||||
|
||||
if args.print_temp:
|
||||
print_readings()
|
||||
raise SystemExit
|
||||
|
||||
if not args.config:
|
||||
raise RuntimeError("--config must be specified in standard operating mode")
|
||||
|
||||
tg_client = await alerts.get_client()
|
||||
cvars.tg_client.set(tg_client)
|
||||
|
|
@ -41,10 +55,11 @@ async def async_main():
|
|||
alerts.send_start_alert(),
|
||||
],
|
||||
"stop": [], # this is checked later
|
||||
"temp": [interval_checker(checks.temp_check, datetime.timedelta(minutes=5))],
|
||||
}
|
||||
|
||||
checkers = []
|
||||
for enabled_set in config.enabled_checker_sets:
|
||||
for enabled_set in config.enabled_check_sets:
|
||||
for checker in checker_sets[enabled_set]:
|
||||
checkers.append(checker)
|
||||
|
||||
|
|
@ -57,7 +72,7 @@ async def async_main():
|
|||
checker_tasks.add(task)
|
||||
while True:
|
||||
if stopping:
|
||||
if "stop" in config.enabled_checker_sets:
|
||||
if "stop" in config.enabled_check_sets:
|
||||
await alerts.send_stop_alert()
|
||||
await tg_client.disconnect()
|
||||
raise SystemExit
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue