add cpu check

This commit is contained in:
Alex Tau 2025-05-10 22:43:29 +03:00
parent 8709b019ea
commit 5095057a13
12 changed files with 123 additions and 21 deletions

View file

@ -1,15 +1,17 @@
import json
from dataclasses import dataclass
from dataclasses import dataclass, field
from typing import Optional
from alt_utils import NestedDeserializableDataclass
from .checks.cpu import CpuCheckConfig
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
@ -22,9 +24,9 @@ class TelegramConfig:
@dataclass
class Config(NestedDeserializableDataclass):
enabled_check_sets: list[str]
checks: ChecksConfig
telegram: TelegramConfig
enabled_check_sets: list[str] = field(default_factory=list)
def load_config(filepath: str) -> Config:

View file

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

View file

@ -1,4 +1,4 @@
from dataclasses import dataclass
from dataclasses import dataclass, field
from typing import Optional
from alt_utils import NestedDeserializableDataclass
@ -6,19 +6,19 @@ from alt_utils import NestedDeserializableDataclass
@dataclass
class TempReadingConfig:
label: Optional[str]
enabled: bool
warning_temp: Optional[float]
critical_temp: Optional[float]
label: Optional[str] = None
enabled: bool = True
warning_temp: Optional[float] = None
critical_temp: Optional[float] = None
@dataclass
class TempSensorConfig(NestedDeserializableDataclass):
name: Optional[str]
enabled: bool
readings: dict[str, TempReadingConfig]
name: Optional[str] = None
enabled: bool = True
readings: dict[str, TempReadingConfig] = field(default_factory=dict)
@dataclass
class TempCheckConfig(NestedDeserializableDataclass):
sensors: dict[str, TempSensorConfig]
sensors: dict[str, TempSensorConfig] = field(default_factory=dict)