Агентные шлюзы — это плоскость управления: аутентификация инструментов, фан-аут вызовов моделей и бюджеты. Логи полезны постфактум, но метрики Prometheus показывают плавный дрейф задержек до эскалации. В 2026 зрелые развёртывания OpenClaw открывают текстовый /metrics (или соседний админ-порт), который SRE скрейпят с предсказуемой кардинальностью, аккуратными именами и exemplars только при включённом трейсинге. Здесь — топология scrape, гистограммы против summaries, гигиена лейблов, связка с health-check и лог-пайплайнами, репетиция на арендованном Mac mini через LaunchAgent с прод-интервалами. Читайте вместе с мониторингом здоровья шлюза, логированием, редактированием и logrotate, чеклистом апгрейда и миграции и сливом трафика nginx, чтобы алерты, логи и метрики не расходились при выкате.
MacHTML сдаёт облачные Mac mini на Apple Silicon около 16,9 USD в день — достаточно для выделенного стенда с теми же scrape job, что и в проде.
Зачем шлюзу полноценный Prometheus
В отличие от монолитов, шлюзы мультиплексируют десятки асинхронных потоков: websocket-вызовы инструментов, HTTP-батчи, ретраи провайдеров и побочные эффекты ФС. Всплеск p99 может быть невидим на суммарном CPU, потому что работа прыгает между воркерами. Счётчики и гистограммы Prometheus ловят объём ошибок, глубину очередей и окна backoff при дисциплинированной инструментации. Без них операторы полагаются на tail sampling и пропускают редкие дорогие вызовы до счёта.
Архитектура OpenClaw допускает частичные отказы: один провайдер деградирует, другие здоровы. Нужны доли успеха по маршруту без тысяч комбинаций лейблов — это красная нить ниже.
Операционно команде инцидентов нужны кривые, которые совпадают с шагами runbook. Если дашборд показывает только «высокий CPU», теряются минуты на профилировщике, пока очередь растёт. Prometheus даёт общий язык PromQL для дежурных смен, которым не приходится изучать десяток самодельных панелей шлюза.
Финансовый контроль тоже выигрывает: скачок потребления токенов коррелирует со сдвигом гистограмм на конкретных маршрутах. Без метрик расхождение замечают только по ежемесячным счетам, когда исправления дороже и ожидания клиентов уже нарушены.
Наконец, постмортемы ускоряются: воспроизводимые фрагменты PromQL показывают, когда канареечный релиз начал расходиться с базовой линией, а логи дают контекст по trace ID. Такая пара сокращает MTTR, если дашборды заранее курированы.
Проектирование scrape /metrics
Не отдавайте метрики на том же сокете, что и клиентский трафик, без mTLS и жёстких ACL. Классика — 127.0.0.1:9108 на хосте шлюза и агент Prometheus через SSH-туннель или VPC peering. Если нужен удалённый доступ, завершайте TLS на nginx с клиентскими сертификатами внутренней PKI.
scrape_configs:
- job_name: openclaw-gateway
scrape_interval: 15s
metrics_path: /metrics
static_configs:
- targets: ['gateway-prod.internal:9108']
Соблюдайте семантику staleness Prometheus: при провале скрейпа во время деплоя графики должны «белеть», а не врать. Согласуйте интервалы с systemd или LaunchAgent, чтобы первый scrape после холодного старта не попал на JIT-пик и не обманул autoscaler.
Service discovery должен совпадать с оркестратором: если Kubernetes отдаёт Endpoints, readiness probe должен убрать Pod из списка до SIGTERM. На bare metal документируйте порты по ролям и избегайте динамических портов, которые ломают targets при каждом рестарте.
Глобально держите scrape_timeout меньше интервала, чтобы зависшие TLS-handshake не съедали потоки. Добавьте circuit breaker на стороне агента, иначе один медленный шлюз заморозит всех pull-воркеров.
Гистограммы и summaries в 2026
Нативные гистограммы отдают структурированные buckets, а Prometheus считает квантили согласованно между репликами. Summaries на клиенте заранее считают квантили и плохо усредняются между подами. Для OpenClaw берите гистограммы для задержек и длительности инструментов с границами по SLO (250ms, 500ms, 1s, 2s, 5s). Summaries допустимы для чужих SDK, но не смешивайте оба типа в одном имени метрики.
Exemplars связывают трейсы: добавляйте trace ID только при допустимом tail sampling и маскируйте клиентские идентификаторы. На репетиционных Mac отключайте exemplars по умолчанию, чтобы не раздувать локальную TSDB.
Практически держите отдельный runbook на миграцию нативных гистограмм: новые версии Prometheus меняют сжатие TSDB, и бюджет диска нужно пересчитать до включения флага в проде.
Кардинальность и бюджет лейблов
Каждая комбинация лейблов — отдельный ряд. Шлюзы соблазняют помечать API-ключи, модели, UUID, пути — нельзя. Эмитьте ограниченные лейблы вроде provider="anthropic" или region="us-west", а высокую кардинальность отправляйте в структурные логи с редактированием из статьи, на которую ссылается введение. Жёсткий бюджет: меньше двухсот кастомных серий на процесс без учёта рантайма Go.
Recording rules сворачивают по маршруту: sum by (route)(rate(openclaw_tool_calls_total[5m])) безопаснее, чем per-tool ID, если только это не закрытый enum из компилятора.
Алертируйте на скачки числа активных рядов: багованный релиз, который начинает экспортировать UUID в лейблах, удваивает размер TSDB за ночь. Жёсткие лимиты в библиотеке инструментирования и ревью PR с метриками снижают риск.
Связка метрик, проб и логов
Метрики не дублируют синтетические пробы, а дополняют: пробы отвечают «открыт ли порт», счётчики — «опустошается ли очередь». Свяжите дашборды, чтобы красные флипы коррелировали с ростом gateway_errors_total. Во время апгрейдов (чеклист из введения) приостанавливайте autoscaling, если успех скрейпа падает ниже пяти девяток на два интервала.
Скрейпы во время drain nginx
Rolling cutover сдвигает вес upstream до завершения процессов. Если service discovery отстаёт, Prometheus может задеть умирающие поды. Используйте readiness gates, чтобы убрать endpoint сразу при drain, как в статье nginx из введения. При скрейпе через nginx добавьте отдельный location с IP allowlist вместо публичных сертификатов с чужим графиком ротации.
LaunchAgent для локальных агентов
На ноутбуках и облачных Mac mini LaunchAgent точнее cron и пишет в Unified Logging. Планируйте лёгкий curl на /metrics раз в минуту, чтобы поймать регрессии экспозиции до CI.
<key>StartInterval</key>
<integer>60</integer>
Агенты без привилегий; не храните bearer token в plist — читайте из связки ключей macOS через подписанный helper.
Репетиция на облачном Mac
Облачный Mac mini повторяет планировщик Apple, чувствительность к регистру ФС и стек TLS. Скопируйте scrape job с короткой ретенцией, прогоните нагрузку и следите за компакцией TSDB. Около 16,9 USD в день многосуточные soak-тесты становятся приемлемыми без нагрузки на общий staging.
Безопасность: TLS и разделение admin
Метрики раскрывают имена очередей, версии и состояния circuit breaker. Закрывайте сетевыми политиками, SSH-туннелями или zero-trust mesh. Если рядом JSON debug, разведите content-type и не дайте маркетинговому DNS открыть админ-порт.
SLO: burn rate и recording rules
Задайте SLI по задержке и доле ошибок, повесьте многооконные burn-алерты. Предвычисляйте окна 5m/1h для быстрых дашбордов. Калибруйте по реальным инцидентам и свяжите runbooks: панели PromQL и лог-запросы по request ID.
Матрица: экспортировать или убрать
| Сигнал | Экспорт? | Заметка |
|---|---|---|
| UUID на запрос | Нет | В логи с редактированием. |
| Глубина очереди | Да | Критично для backpressure. |
| Счётчики 429 по провайдеру | Да | Ограниченные лейблы; связывать с Retry-After. |
| Heap samples | Нет | Отдельный pprof с auth. |
Нумерованный чеклист
- Инвентаризировать ряды и выкинуть сверх бюджета кардинальности.
- Согласовать buckets гистограмм с SLO и задокументировать границы.
- Завершить TLS, ACL и relabel, убрав секреты окружения.
- Проверить drain: поды исчезают из SD до возобновления scrape.
- Совместно проверить пробы и метрики под синтетической нагрузкой на Mac cloud.
- Отгрузить Grafana с аннотациями окон деплоя.
- Запустить LaunchAgent-canary для дрейфа экспозиции.
- Настроить ретенцию и downsampling на репетиционном Prometheus.
FAQ
Prometheus на хосте шлюза?
Обычно нет — скрейпите в центральную TSDB, чтобы сузить blast radius.
OpenTelemetry?
Дополняет; конвертируйте в exposition Prometheus, если стандарт — PromQL.
Кардинальность в CI?
Снимайте счётчик серий после интеграционных тестов и валите сборку при новых лейблах без ревью.
Надёжные метрики — часть той же культуры, что аптайм-пробы и структурные логи. Репетиция скрейпов на Mac mini от MacHTML за ~16,9 USD в день ловит TLS, сеть и тайминги до продакшн Prometheus.
Репетиция метрик шлюза на облачном Mac mini
Скопируйте scrape job, измерьте кардинальность TSDB и проверьте LaunchAgent на реальном macOS до merge наблюдаемости.