ram check, configurable loglevel

This commit is contained in:
Alex Tau 2025-05-13 14:15:56 +03:00
parent 5095057a13
commit da85a566c4
10 changed files with 180 additions and 18 deletions

View file

@ -4,16 +4,19 @@ from typing import Optional
from alt_utils import NestedDeserializableDataclass
from . import enums
from .checks.cpu import CpuCheckConfig
from .checks.ram import RamCheckConfig
from .checks.temp import TempCheckConfig
from .checks.vulnix import VulnixCheckConfig
@dataclass
class ChecksConfig(NestedDeserializableDataclass):
cpu: Optional[CpuCheckConfig] = None
temp: Optional[TempCheckConfig] = None
vulnix: Optional[VulnixCheckConfig] = None
cpu: CpuCheckConfig = field(default_factory=CpuCheckConfig)
ram: RamCheckConfig = field(default_factory=RamCheckConfig)
temp: TempCheckConfig = field(default_factory=TempCheckConfig)
vulnix: Optional[VulnixCheckConfig] = None # vulnix check WILL raise if this config section is None
@dataclass
@ -26,7 +29,8 @@ class TelegramConfig:
class Config(NestedDeserializableDataclass):
checks: ChecksConfig
telegram: TelegramConfig
enabled_check_sets: list[str] = field(default_factory=list)
enabled_check_sets: list[enums.CheckSet] = field(default_factory=list)
log_level: enums.LogLevelName = enums.LogLevelName.INFO
def load_config(filepath: str) -> Config:

View file

@ -0,0 +1,8 @@
from dataclasses import dataclass
from typing import Optional
@dataclass
class RamCheckConfig:
warning_percentage: Optional[float] = 80
critical_percentage: Optional[float] = 90

View file

@ -0,0 +1,20 @@
from enum import StrEnum
class CheckSet(StrEnum):
START = "start"
STOP = "stop"
CPU = "cpu"
RAM = "ram"
TEMP = "temp"
VULNIX = "vulnix"
class LogLevelName(StrEnum):
CRITICAL = "CRITICAL"
ERROR = "ERROR"
WARNING = "WARNING"
INFO = "INFO"
DEBUG = "DEBUG"