19 Commits

Author SHA1 Message Date
Maksim Totmin
dc8d4db358 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()
2026-06-24 13:39:57 +07:00
Maksim Totmin
a5e17bcdd8 docs: move build instructions to cli/README.md, keep main README lean 2026-06-24 11:17:41 +07:00
Maksim Totmin
28f5a407c9 feat: add binary build instructions and __main__ guard for pyinstaller
- Add __main__ guard to cli.py for pyinstaller packaging
- Document clean-venv build producing ~11 MB binary
- Add *.spec to .gitignore
- Exclude heavy stdlib modules in build command
2026-06-24 11:14:32 +07:00
Maksim Totmin
9feb14a33a docs: add cli.py and cli/ to project structure 2026-06-24 11:04:41 +07:00
Maksim Totmin
c066ae687a feat: separate ses-test CLI install via subdirectory
Add cli/pyproject.toml so analysts can install only ses-test
without the monitoring daemon or Zabbix integration.

pip install "ses-test @ git+https://...#subdirectory=cli"
→ only ses-test binary, no ses-monitor in PATH

Root pyproject.toml unchanged — daemon install still provides both.

docs: rename section to 'Установка ses-test'
2026-06-24 10:50:47 +07:00
Maksim Totmin
fbfd073369 feat: add ses-test CLI for interactive YAML scenario testing
- New ses-test command: run a single YAML scenario against real SES
  step-by-step with persistent session tracking
- --verbose shows raw JSON responses, --dry-run validates YAML only
- --session / --robot-id overrides for iterative debugging
- Add verify param to SESClient for self-signed HTTPS support
- Add load_scenario_file() to config.py for single-file loading
- Update README with ses-test usage examples and output samples
2026-06-24 10:37:41 +07:00
Maksim Totmin
fd45734a74 fix Zabbix 6.0 template triggers: avg(#3) on scenario.failed, remove duplicate ok trigger
- Change ses.scenario.failed triggers: last() -> avg(#3) for reliable detection
- Remove ses.scenario.ok trigger (duplicates scenario.failed > 0)
- Fix preprocessing: parameters with parameter child elements for Zabbix 6.0
- Remove UUID dashes (32 hex chars) for Zabbix 6.0 compatibility
- Fix template_groups -> groups format for Zabbix 6.0
- Fix strlen() -> length() for Zabbix 6.0 trigger compatibility
- All templates now have 6 triggers each
2026-06-23 19:24:03 +07:00
Maksim Totmin
cc53577e31 fix parameters tag: wrap value in <parameter> element for Zabbix 5.0/6.0 compatibility 2026-06-23 18:18:29 +07:00
Maksim Totmin
b3b18b019b fix preprocessing step tag for Zabbix 5.0/6.0 compatibility: params -> parameters 2026-06-23 18:17:01 +07:00
Maksim Totmin
11a96222f4 add triggers to all Zabbix templates
- add WARNING trigger on ses.license.days_remaining (< 30 days)
- add CRITICAL trigger on ses.scenario.error (strlen > 0)
- populate all 5 missing triggers in zbx_ses_template_5.0_up.xml

All 4 templates now have 7 triggers each.
2026-06-23 18:13:43 +07:00
Maksim Totmin
32c59a4005 feat: Zabbix 6.4 UserParameter template + fix scenario metrics
- Add zbx_ses_template_up.xml: Zabbix 6.4 template for UserParameter mode
  (1 master item + 11 dependent items with JSONPath preprocessing)
- Add write_agentd_config() to UserParameterWriter: atomically writes
  zbx_agentd_ses.conf on startup
- Call write_agentd_config() in main.py start() for userparameter mode
- Fix _run_due_scenarios: always write scenario metrics (even when
  disabled/empty) to prevent Zabbix JSONPath preprocessing failures
- Fill placeholder zbx_ses_monitor.conf with actual UserParameter line
- Update README: Zabbix 6/5 template table, Include instructions
2026-06-23 17:41:27 +07:00
Maksim Totmin
0f005d46f0 fix: correct venv path in systemd unit (add missing dot before venv) 2026-06-23 17:19:25 +07:00
Maksim Totmin
c1ca7b9579 docs: use HTTPS clone URL (repo is public) 2026-06-23 15:06:25 +07:00
Maksim Totmin
1433342256 feat: rewrite zbx_ses_template for Zabbix 6.4, sync 5.0 with etalon
- zbx_ses_template.xml: version 6.4, trapper type, proper UUIDs,
  11 items matching etalon, trigger expressions in new last(/host/key) format
- zbx_ses_template_5.0.xml: add ses.license.days_remaining and
  ses.scenario.* items, rename scenario triggers to 'тестовые сценарии'
- README.md: remove Git SSH key mention (irrelevant for Zabbix setup)
2026-06-23 15:01:07 +07:00
Maksim Totmin
79c60fa535 docs: remove Prometheus/Grafana section (incomplete, misleading) 2026-06-19 21:35:55 +07:00
Maksim Totmin
54a2f9ba1b cleanup: remove dead monitoring config fields
archive_check_interval, scenario_default_timeout and
step_time_monitoring were only defined and loaded but never
read by any runtime code (archive_auditor was removed earlier).
2026-06-19 21:25:45 +07:00
Maksim Totmin
e435f4d874 cleanup: remove dead ModelsMonitoringConfig
archive_auditor was removed earlier, but ModelsMonitoringConfig
(SEE, SMC, TTS, QAS, SPR) and its YAML config section remained.
Nowhere in the runtime code reads these settings.
2026-06-19 21:18:21 +07:00
Maksim Totmin
4c38a9a327 chore: refresh git hooks 2026-06-19 21:06:14 +07:00
Maksim Totmin
8dca7eb46b Initial commit: SES Monitor
Watchdog-демон для непрерывного мониторинга SES.
- Liveness-проверки API, лицензии, списка роботов
- Диалоговые сценарии из YAML с агрегацией в 6 фиксированных Zabbix-метрик
- Доставка: zabbix_sender (push) или UserParameter (poll)
- Hot-reload сценариев без перезапуска
2026-06-19 21:04:05 +07:00