mirror of
https://forgejo.altau.su/lego/lego-monitoring.git
synced 2026-03-12 05:35:19 +00:00
ram check, configurable loglevel
This commit is contained in:
parent
5095057a13
commit
da85a566c4
10 changed files with 180 additions and 18 deletions
|
|
@ -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:
|
||||
|
|
|
|||
8
src/lego_monitoring/config/checks/ram.py
Normal file
8
src/lego_monitoring/config/checks/ram.py
Normal 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
|
||||
20
src/lego_monitoring/config/enums.py
Normal file
20
src/lego_monitoring/config/enums.py
Normal 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"
|
||||
Loading…
Add table
Add a link
Reference in a new issue