2026 OpenClaw на аренде Mac Mini: Grafana OnCall Webhook для 7×24 ночных батчей — окна тишины, эскалация и backoff-retries
Независимые разработчики и операторы 7×24, которые арендуют Mac Mini и гоняют ночные OpenClaw-батчи, нуждаются в пейджинге с окнами тишины, эскалацией и бюджетом retry — а не в сыром curl в три часа ночи.
Этот runbook для безнадзорных узлов Apple Silicon с Grafana OnCall webhook: матрица параметров OnCall, sechs шаги внедрения, опорные пороги. Внутренние ссылки: матрица батчей 7×24, сравнение долгосрочного хостинга батчей, launchd healthcheck и webhook.
Три операционные боли ohne orchestrierte OnCall-Webhooks
- Неограниченные retry: зависший сегмент шлёт ту же OnCall-payload каждую минуту — без dedupe keys на
batch_id. - Дрейф политики: окна тишины в Grafana OnCall расходятся с реальным календарём launchd; ожидаемое давление диска пейджит, а реальные сбои прячутся в окне обслуживания.
- Экспозиция шлюза: привязка OpenClaw ко всем интерфейсам превращает аренду в открытый relay, если правило firewall сдвинется.
Аренда Mac Mini: openclaw onboard --install-daemon и loopback-шлюз
Закрепите Node 24, установите OpenClaw v2026.5.x, выполните openclaw onboard --install-daemon под выделенным пользователем автоматизации. OPENCLAW_HOME задавайте в launchd EnvironmentVariables, а не в интерактивных shell-профилях.
- Привяжите шлюз к 127.0.0.1 и высокому порту; требуйте
X-OpenClaw-Secretна каждом маршруте, запускающем исходящие OnCall. - Ставьте Caddy или nginx только если SaaS должен POSTить входящие hooks; завершайте TLS локально и проксируйте на loopback.
- Логируйте JSON-строки с
batch_id,segment,oncall_groupдо запуска HTTP-клиентов.
openclaw onboard --install-daemon
openclaw gateway status
# ожидание: bind 127.0.0.1:18789, keepalive launchd
Grafana OnCall: маршрутизация, окна тишины и параметры эскалации
Зафиксируйте эти значения в системе контроля версий; соотношения переживают consumer uplink и аренду с одним диском.
| Параметр | Стартовое значение | Стабильность / безопасность |
|---|---|---|
| URL входящего webhook | Одна интеграция на среду | URL в Keychain; ротация раз в квартал |
| Dedupe-Key | host:batch_id:segment |
Не даёт параллельным retry сегментов разветвить инциденты |
| UTC тишина (ночной батч) | 22:00–06:00 + 30 min Puffer | Тег night_batch; P1 при потере данных всё равно |
| Задержка эскалации | 15 → 30 → 60 Minuten | Самый длинный здоровый сегмент плюс потолок retry |
| Маршрут: ожидаемое давление | Политика отложенного уведомления | Жёлтый диск сюда; красный обходит тишину |
| Resolve при успехе | Обязательно | OpenClaw POST resolve при продвижении чекпойнта |
Ночной DAG: сегментные чекпойнты и шаблон backoff
Считайте каждую ночную дорожку DAG из трёх–шести сегментов. Чекпойнты в $OPENCLAW_HOME/checkpoints сохраняйте, чтобы перезапуск шлюза продолжал без повторного OnCall для завершённых срезов.
# шаблон backoff (bash)
BASE=3; CAP=60; MAX=5; JITTER=0.2
for attempt in $(seq 1 $MAX); do
sleep $(( BASE * 2 ** (attempt-1) < CAP ? BASE * 2 ** (attempt-1) : CAP ))
curl -fsS -X POST "$ONCALL_URL" -d @"payload.json" && break
done
- Шлите firing только когда сегмент превышает бюджет ошибок; сливайте хвосты stdout в один блок описания OnCall.
- Уважайте HTTP 429 и
Retry-Afterдо собственной экспоненциальной кривой. - launchd throttle и приоритет IO, чтобы сегмент два не голодал сегмент один на том же диске.
Водораздел APFS и пороги ротации логов launchd
Штормы алертов часто начинаются с полного диска, а не с нестабильных webhook. Связывайте локальные gate перед каждым emit.
- Жёлтый при 15% свободного APFS; красный при 10% — пауза новых сегментов, немедленный маршрут пейджит.
- Ротируйте
~/Library/Logs/openclaw/gateway.logчерез newsyslog при 256 МБ, семь дневных копий. - launchd
ThrottleInterval90–120 секунд на label шлюза против циклов перезапуска.
Шесть воспроизводимых шагов внедрения
- Подготовка аренды: оформите аренду, проверьте SSH в центре помощи, сохраните baseline
df -hиз письма онбординга с главной. - Onboard OpenClaw:
openclaw onboard --install-daemon, проверьте loopback bind, установите plist launchd с KeepAlive. - Интеграция OnCall: создайте URL входящего webhook, сопоставьте таблицу severity, цепочку эскалации и UTC-тишину для тегов
night_batch. - Один модуль отправки: сопоставьте внутренние события с зафиксированным JSON; dedupe key и resolve payload при успехе чекпойнта.
- Сборка DAG: сегментируйте ночную дорожку, сохраняйте state-файлы, backoff с пятью попытками и потолком 60 секунд.
- Учебная тревога: инициируйте staging-алерт, убедитесь что тишина глушит ожидаемый шум, эскалация только после задержки политики; зафиксируйте latency emit в metrics store.
Опорные величины для runbook и SLA
- Loopback bind: 127.0.0.1; тишина 22:00–06:00 UTC плюс 30 минут перерасхода.
- Эскалация: задержки 15 / 30 / 60 минут; база backoff 3 с, потолок 60 с, макс 5 попыток, джиттер ±20%.
- APFS: жёлтый 15%, красный 10% свободно; лог шлюза 256 МБ × 7 дней; ThrottleInterval 90–120 с.
FAQ шторма алертов
OnCall принял webhook, но никого не уведомил?
Проследите инцидент в Grafana OnCall: правила маршрутизации, дыры в расписании дежурных, активная тишина — не гадайте про API. Логируйте alert group id рядом с batch_id OpenClaw.
Можно ли переиспользовать путь Uptime Kuma для OnCall?
Раздельные пути. Fan-in Kuma на /hooks/uptime; OnCall использует свою интеграцию и схему — см. гайд Uptime Kuma webhook только для стороны мониторов.
Когда нужна долгосрочная аренда Mac Mini вместо коротких узлов?
Если чекпойнты, интеграции OnCall и label launchd должны жить месяцами — матрица долгосрочного батча до заморозки календарей тишины.
Итог. Свяжите loopback-шлюзы OpenClaw с webhook Grafana OnCall, зафиксированными таблицами маршрутизации, сегментными ночными чекпойнтами и ограниченным backoff. Ёмкость — по матрица батчей 7×24, затем Главная для здоровья флота после первой тихой ночи.
Аренда Mac Mini для OpenClaw и Grafana OnCall
RunMini Apple Silicon для стражей 7×24 и ночных DAG. долгосрочные тарифы, pokupka.html без входа, помощь SSH и VNC после оформления.
См. также: технический блог; матрица долгосрочного хостинга; матрица батчей 7×24; healthcheck daemon.