From dc8d4db3581bc2debd948e82dacbbb4bb3121f48 Mon Sep 17 00:00:00 2001 From: Maksim Totmin Date: Wed, 24 Jun 2026 13:39:57 +0700 Subject: [PATCH] refactor: remove dead ArchiveCheckConfig and stale archive_task docs - Remove ArchiveCheckConfig dataclass and archive_check field (never used) - Remove archive parsing from _dict_to_scenario_config() - Fix main.py docstring: archive_task never existed in _main_loop() --- src/ses_monitor/config.py | 20 -------------------- src/ses_monitor/main.py | 3 +-- 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/src/ses_monitor/config.py b/src/ses_monitor/config.py index 8c55de6..979c5bc 100644 --- a/src/ses_monitor/config.py +++ b/src/ses_monitor/config.py @@ -103,15 +103,6 @@ class ScenarioStep: # contains/equals/not_contains/not_empty/regex: условие -@dataclass -class ArchiveCheckConfig: - """Настройки проверки архива для сценария.""" - - enabled: bool = False - lookback_minutes: int = 10 - expect: List[Dict[str, Any]] = field(default_factory=list) - - @dataclass class ScenarioConfig: """Конфигурация одного сценария мониторинга.""" @@ -125,7 +116,6 @@ class ScenarioConfig: channel: Optional[str] = None restart_closed: bool = False steps: List[ScenarioStep] = field(default_factory=list) - archive_check: Optional[ArchiveCheckConfig] = None def _dict_to_scenario_step(data: Dict[str, Any]) -> ScenarioStep: @@ -140,15 +130,6 @@ def _dict_to_scenario_config(data: Dict[str, Any]) -> ScenarioConfig: """Преобразует словарь из YAML в ScenarioConfig.""" steps = [_dict_to_scenario_step(s) for s in data.get("steps", [])] - archive_data = data.get("archive_check") - archive_check = None - if archive_data: - archive_check = ArchiveCheckConfig( - enabled=archive_data.get("enabled", False), - lookback_minutes=archive_data.get("lookback_minutes", 10), - expect=archive_data.get("expect", []), - ) - return ScenarioConfig( name=data.get("name", ""), description=data.get("description", ""), @@ -159,7 +140,6 @@ def _dict_to_scenario_config(data: Dict[str, Any]) -> ScenarioConfig: channel=data.get("channel"), restart_closed=data.get("restart_closed", False), steps=steps, - archive_check=archive_check, ) diff --git a/src/ses_monitor/main.py b/src/ses_monitor/main.py index f5f1534..30dd39a 100644 --- a/src/ses_monitor/main.py +++ b/src/ses_monitor/main.py @@ -2,10 +2,9 @@ Главный цикл watchdog-демона для мониторинга SES. Архитектура: - - Бесконечный asyncio-цикл с тремя параллельными задачами: + - Бесконечный asyncio-цикл с двумя параллельными задачами: 1. liveness_task: быстрые проверки каждые 30 секунд. 2. scenarios_task: запуск сценариев по их индивидуальному расписанию. - 3. archive_task: анализ архива каждые 10 минут. - Hot-reload сценариев из каталога каждые 60 секунд. - Все метрики отправляются в Zabbix единым батчем после проверок. - Graceful shutdown по SIGTERM/SIGINT.