Версия: 1.1.0
Модель: Haiku (ОБЯЗАТЕЛЬНО дешёвая)
Запуск: По расписанию или команде
Telegram: @aiproektor_bot → оператору
┌─────────────────────────────────────────────────────────┐
│ Monitor ВСЕГДА использует HAIKU │
│ │
│ Haiku: проверки, сбор данных, простые алерты │
│ Sonnet: анализ сложных логов (редко, по эскалации) │
│ Opus: только критические инциденты │
└─────────────────────────────────────────────────────────┘
При запуске через Task tool:
Task(subagent_type="Explore", model="haiku", prompt="проверить диск...")
Monitor следит за здоровьем системы:
- Инфраструктура (диск, память, CPU, сервисы)
- Платформа (очереди, сессии, логи)
- Делегирование (успешность моделей, эскалации)
# Полная проверка
python3 system/monitor/run.py
# Быстрая (только critical)
python3 system/monitor/run.py --quick
# Отчёт в Markdown
python3 system/monitor/run.py --report
# JSON вывод
python3 system/monitor/run.py --json
# /etc/cron.d/claude-monitor
# Быстрая проверка каждые 30 минут
*/30 * * * * root cd /opt/claude-workspace && python3 system/monitor/run.py --quick
# Полная проверка каждые 6 часов
0 */6 * * * root cd /opt/claude-workspace && python3 system/monitor/run.py
# Ежедневный отчёт в 8:00
0 8 * * * root cd /opt/claude-workspace && python3 system/monitor/run.py --report > .monitor/reports/$(date +\%Y-\%m-\%d).md
system/monitor/
├── CLAUDE.md ← Этот файл
├── run.py ← Точка входа
├── config.yaml ← Настройки и пороги
│
├── checks/ ← Проверки
│ ├── infra.py ← Сервер
│ ├── platform.py ← Платформа
│ └── delegation.py ← Делегирование
│
├── alerts/ ← Уведомления
│ ├── telegram.py ← Telegram
│ └── file.py ← Файл (fallback)
│
├── tickets/ ← Тикеты
│ └── creator.py ← Создание тикетов
│
└── output/ ← Результаты
└── latest.json ← Последний запуск
| Проверка | Что смотрит |
|---|---|
| disk | Использование диска (%) |
| memory | Использование RAM (%) |
| cpu | Load average |
| services | Статус systemd сервисов |
| docker | Здоровье контейнеров |
| Проверка | Что смотрит |
|---|---|
| queues | Застрявшие задачи (>48ч) |
| sessions | Старые сессии |
| context | Актуальность PROTOCOL.md |
| logs | Ошибки в логах |
| Проверка | Что смотрит |
|---|---|
| success_rate | Успешность по моделям |
| escalations | Количество эскалаций |
| costs | Расход токенов |
Настраиваются в config.yaml:
infra:
disk:
warning: 80 # %
critical: 90 # %
memory:
warning: 80
critical: 90
Создаются в .queue/inbox/:
id: monitor-20251221-180000
type: ticket
created_by: monitor
importance: high # или medium
title: "disk: 92%"
source: check_disk
output/latest.json — последний запускoutput/YYYY-MM-DD_HHMMSS.json — историяchecks/infra.py (или другой домен)check_*:def check_something(config: Dict) -> Dict[str, Any]:
# ... логика
return {
"name": "something",
"value": 42,
"unit": " items",
"status": "ok", # или warning/critical
"recommendation": "..." if status != "ok" else None
}
run_checks() списокalerts/slack.py (или другой)run.pyprocess_findings()Monitor использует @aiproektor_bot для алертов.
Конфиг: system/config/telegram.yaml
bots:
proektor: # ← Monitor использует этого бота
token: "..."
username: "aiproektor_bot"
chats:
operator: 1318367261 # ← Куда шлёт алерты
Коннектор: library/connectors/api/telegram/
Версия: 1.0.0