2026: OpenClaw Gateway — метрики Prometheus и панели Grafana: сбор /metrics 7×24 на удалённом физическом Mac, пороги алертов и разбор ложных срабатываний (готовые scrape, запросы панелей и FAQ)
Командам платформы и SRE, которые держат OpenClaw Gateway на удалённых физических Mac, часто кажется, что шлюз «живой» по SSH, пока Prometheus показывает up=0, а Grafana шлёт ночные «шипы» задержки. Здесь — матрица топологии скрейпа и снисходительности алертов, воспроизводимый runbook из семи шагов, копируемые scrape / PromQL / правила и FAQ.
1. Введение и префиксы имён метрик
Материал для команд, которые запускают OpenClaw на арендованных физических Mac (например, узлы ZoneMac). Нужны задержка HTTP, доля ошибок и здоровье процесса как запрашиваемые, аудируемые и алертуемые ряды — а не только разовый curl по SSH.
Имена метрик зависят от версии OpenClaw и рантайма (Node.js prom-client, OpenTelemetry или встроенная статистика шлюза). Ниже — PromQL для типичных HTTP-метрик вроде http_request_duration_seconds_* и http_requests_total (или *_bucket/_sum/_count). На хосте выполните curl -s localhost:<port>/metrics | grep -E 'http_|process_' и подставьте реальные имена в запросы.
Если вы подбираете регион узла и сетевую топологию, см. как выбрать регион облачного сервера Mac в 2026 году; для базовой настройки производительности и окружения — как эффективно запустить OpenClaw на Mac в 2026 году.
2. Три типовых боли
- Ограничение: адрес привязки и место Prometheus. Шлюз слушает только
127.0.0.1, а Prometheus в контейнере или на другой машине — скрейпы падают (up=0), хотя локальный curl на Mac успешен. - Скрытая цена: высокая кардинальность и агрессивный scrape_interval. Сырые пути или фрагменты ключей в метках раздувают кардинальность TSDB; скрейп каждую 1 с по Wi‑Fi или туннелю превращает джиттер в «шерсть» на графиках Grafana.
- Стабильность и ложные тревоги: энергосбережение macOS и окна деплоя. Сон дисплея, сон диска или горячая перезагрузка кратко поднимают p95; алерты с
for: 0sбудят дежурного из-за шума.
3. Матрица: скрейп и алерты
Перед продом зафиксируйте «кто из какого сетевого пространства скрейпит» и нужно ли учитывать рабочие часы в алертах.
| Измерение | Локальный Prometheus / vmagent | Централизованный удалённый Prometheus |
|---|---|---|
| Сетевой путь | Та же машина или мост, что и шлюз — проще всего 127.0.0.1 |
Шлюз должен слушать LAN или отдавать read-only метрики через обратный прокси / Tailscale |
| Операционная нагрузка | Конфиг на узел; апгрейды трогают много файлов | Правила и дашборды в одном месте; нужна стабильная достижимость |
| Типичный сценарий | Один арендатор, сильная изоляция, первый контур наблюдаемости | Мультирегиональные пулы с едиными SLO и маршрутизацией алертов |
| Стиль алерта | Лучше всего для | Главный риск |
|---|---|---|
| for: 2–5m + выражения на rate | HTTP 5xx, тайм-ауты, повышенная доля ошибок | Сустейн-аварии видны на несколько минут позже (допустимо при мягком SLA) |
| for: 0 + проба up | Процесс исчез, порт не принимает | Шум при покатных рестартах без silence или слияния |
| Почасовой / временной silence | Плановое обслуживание, бэкапы, всплески GC | Забытые silence скрывают реальные инциденты |
4. Семишаговый runbook (удалённый физический Mac)
- Подтвердите endpoint и bind. Включите метрики в конфиге шлюза; проверьте
metrics_path(часто/metrics) и IP прослушивания. Для удалённого скрейпа избегайте только127.0.0.1, если сборщик не в том же namespace. - Локальный дымовой тест.
curl -sS http://127.0.0.1:<port>/metrics | head -n 40— должны быть строки HELP/TYPE для HTTP и process. - Выберите место сборщика. PoC на одном узле — Prometheus рядом. Много узлов — vmagent с remote-write или централизованный Prometheus с allowlist в фаерволе.
- Опишите scrape (ниже). Используйте
scrape_interval: 15s–30s, разумныйscrape_timeout, стабильное relabel дляinstance. - Подключите Grafana. Добавьте datasource Prometheus; панели: суммарный RPS, p95, доля 5xx,
up, длительность скрейпа. - Задайте алерты и маршруты. Разные
forдля долей ошибок и для «сырого»up; silence в Alertmanager или флаги обслуживания из CI при деплое. - Согласуйте настройки macOS 7×24. Предпочтительно проводное Ethernet, отключить сон диска, выровнять часовой пояс и NTP. Если скрейп зелёный, а приложение отдаёт 500 — сначала логи приложения, не Prometheus.
5. Готовые scrape, PromQL и алерты
5.1 Фрагмент scrape_configs для Prometheus
Подставьте свои targets и порт. За обратным прокси пропустите /metrics без кэширования.
scrape_configs:
- job_name: openclaw-gateway
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
static_configs:
- targets:
- '127.0.0.1:18789'
labels:
env: prod
role: gateway
# relabel_configs:
# - source_labels: [__address__]
# target_label: instance
5.2 Запросы панелей Grafana (подставьте имена метрик с хоста)
- Запросов в секунду (RPS):
sum(rate(http_requests_total{job="openclaw-gateway"}[5m])) - p95 задержка (гистограмма):
histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{job="openclaw-gateway"}[5m])) by (le)) - Доля 5xx (пример):
sum(rate(http_requests_total{job="openclaw-gateway",status=~"5.."}[5m])) / sum(rate(http_requests_total{job="openclaw-gateway"}[5m])) - Здоровье скрейпа:
up{job="openclaw-gateway"}иscrape_duration_seconds{job="openclaw-gateway"}
5.3 Правила алертов (rule_files в Prometheus)
groups:
- name: openclaw_gateway
rules:
- alert: GatewayScrapeDown
expr: up{job="openclaw-gateway"} == 0
for: 2m
labels:
severity: critical
annotations:
summary: "Эндпоинт метрик OpenClaw недоступен"
- alert: GatewayHigh5xxRatio
expr: sum(rate(http_requests_total{job="openclaw-gateway",status=~"5.."}[5m])) / sum(rate(http_requests_total{job="openclaw-gateway"}[5m])) > 0.05
for: 5m
labels:
severity: warning
annotations:
summary: "Доля 5xx > 5% (подстройте метки под свою схему)"
Если вместо status используется code или свой outcome, перепишите селекторы — проверьте ненулевые векторы в Grafana Explore до включения в алерты.
6. Типичные ложные срабатывания
| Симптом | Сначала проверьте | Что сделать |
|---|---|---|
Прерывистый up=0 |
Переподключение туннеля, энергосбережение Wi‑Fi, bind только на loopback | Ethernet, исправить bind, удлинить for для job’ов за туннелем |
| Ночные всплески p95 | Сон диска, Time Machine, Spotlight | Отключить сон диска; перенести бэкапы; в выражении алерта требовать «два подряд окна» |
| Алерты 5xx при деплое | Катящийся рестарт, readiness ещё не готов | Silence из CI; разделить job readiness и скрейп метрик |
| Рост памяти TSDB | Путь или user id в метках | Снизить кардинальность в приложении; metric_relabel_configs для отбрасывания меток |
7. Цифры для отчётов и слайдов
- scrape_interval: 15s в проде (не ускоряйте без причины сильнее хвостовой задержки шлюза); 30s на межконтинентальных линках.
- scrape_timeout: держите ≤ ~2/3 от scrape_interval; для туннелей начните с 10s.
- for в алертах: правила доступности — с 2m; долевые — с 5m, затем ужесточайте по burn rate SLO.
8. FAQ
В: Нужен ли Basic Auth перед /metrics?
О: Да, если путь пересекает недоверенную или мультитенантную сеть. Предпочтительны приватные сети + mTLS или SSH-туннели, а сложность аутентификации оставляйте на границе.
В: Влияет ли часовой пояс macOS на PromQL?
О: Prometheus хранит UTC; часовой пояс выбирайте в Grafana. При корреляции с локальными логами держите одну согласованную зону, чтобы не путать порядок «алерт раньше строки лога».
В: Можно ли добавить node_exporter для метрик хоста?
О: Да — отдельный job_name: node, чтобы связывать 5xx шлюза с заполнением диска или нехваткой CPU.
9. Итог и выбор узла
Когда HTTP- и процесс-метрики OpenClaw Gateway попадают в Prometheus и Grafana, сбои на узлах 7×24 перестают решаться «зайти по SSH и угадать»: видно, двигаются ли вместе up, доля ошибок и p95. Повторяющиеся темы — согласовать адрес привязки с сетевым путём скрейпа, использовать for в алертах и отфильтровать шум от энергосбережения macOS и деплоев из SLO.
Такой стек «шлюз + наблюдаемость» хорошо ложится на macOS: launchd, логи и Unix-утилиты в одном контуре; Apple Silicon в простое потребляет очень мало — удобно для постоянных шлюзов. По сравнению с компактными x86-коробками того же класса цены вы обычно получаете лучшую стабильность и энергоэффективность, а Gatekeeper, SIP и FileVault усиливают защиту учётных данных и концов туннелей — что важно операторам удалённых шлюзов.
Если нужны те же scrape и дашборды на тихом, экономичном железе, готовом к работе 7×24, Mac mini M4 в 2026 году остаётся одним из лучших по соотношению цена/качество — возьмите удалённый физический Mac через ZoneMac и введите метрики шлюза в промышленный контур за один проход.
Запускаете OpenClaw и Prometheus на реальном железе Mac?
ZoneMac предлагает мультирегиональные физические Mac для шлюзов 7×24 и выкатов наблюдаемости — по запросу, с той же планкой приёмки, что и в этом руководстве.