Initial commit: SES Monitor

Watchdog-демон для непрерывного мониторинга SES.
- Liveness-проверки API, лицензии, списка роботов
- Диалоговые сценарии из YAML с агрегацией в 6 фиксированных Zabbix-метрик
- Доставка: zabbix_sender (push) или UserParameter (poll)
- Hot-reload сценариев без перезапуска
This commit is contained in:
Maksim Totmin
2026-06-19 21:04:05 +07:00
commit 8dca7eb46b
25 changed files with 4267 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
# =============================================================================
# Пример сценария: диалог с несколькими шагами
# =============================================================================
# Имитирует полноценный диалог пользователя с роботом SES.
# Каждый шаг проверяет конкретные поля ответа.
#
# ИНСТРУКЦИЯ: скопируйте, переименуйте и опишите ваш диалог.
# cp example_dialog.yaml my_project_dialog.yaml
# # замените шаги и ожидания под логику вашего сценария
name: "example: диалог"
description: >
Пример многошагового диалога с проверкой промежуточных ответов.
Адаптируйте под логику вашего робота.
enabled: false # Пример выключен по умолчанию
interval: 600
timeout: 45
# robot_id: "uuid-вашего-робота" # ОБЯЗАТЕЛЬНО: ID робота из /ses/robot/listall
restart_closed: false # Не переоткрывать закрытые сессии
steps:
# Шаг 1: инициируем диалог
- send: "Привет"
expect:
- path: "error"
equals: 0
- path: "answer[0].messages[0]"
not_empty: true
# Шаг 2: продолжаем диалог
- send: "Как дела?"
expect:
- path: "error"
equals: 0
- path: "answer[0].messages[0]"
not_empty: true
# Шаг 3: завершаем
- send: "Спасибо"
expect:
- path: "error"
equals: 0
+28
View File
@@ -0,0 +1,28 @@
# =============================================================================
# Пример сценария: базовая проверка liveness робота
# =============================================================================
# Проверяет что робот отвечает на приветствие и не возвращает ошибок API.
# robot_id указывается в этом же файле (не наследуется из глобального конфига).
#
# ИНСТРУКЦИЯ: скопируйте этот файл, переименуйте и адаптируйте под ваш проект.
# cp example_liveness.yaml my_project_liveness.yaml
# # отредактируйте: name, robot_id, steps, expect
name: "example: liveness"
description: >
Базовая проверка: отправляем приветствие роботу
и убеждаемся что API отвечает без ошибок.
Не зависит от конкретного сценария SES.
enabled: false # Пример выключен по умолчанию
interval: 60
timeout: 15
# robot_id: "uuid-вашего-робота" # ОБЯЗАТЕЛЬНО: ID робота из /ses/robot/listall
steps:
- send: "Здравствуйте"
expect:
- path: "error"
equals: 0
- path: "answer"
not_empty: true