В 2026 году два совершенно разных инцидента оба выглядят как 429 Too Many Requests: защита шлюза от брутфорса аутентификации на плохих токенах и ограничение upstream SaaS, потому что десять агентов одновременно нашли cron. Если объединить эти сигналы в одной панели, вы неверно настроите лимиты—ослабите безопасность или заморозите легитимную автоматизацию. Эта матрица разделяет классы, фиксирует правила бэкоффа для заголовков Retry-After и даёт восемь шагов для выделенного шлюза Mac mini M4 на NodeMac—SSH для автоматизации, VNC когда macOS всё ещё требует поверхности согласия.
Связанное ужесточение: токен-аутентификация и дрейф launchd, мультимодельный failover и таймауты, пробы готовности и SLO, egress-прокси и TLS-allowlist. Наблюдаемость: ротация логов и редактирование; триаж: doctor. Цены; помощь.
Классифицируйте 429 до поворота ручек
Начинайте каждый инцидент с трёх полей: семейство HTTP-маршрутов (админ, webhook, вызов инструмента), идентичность (рабочее пространство, бот-токен, IP) и провайдер (Slack, Anthropic, внутренняя CRM). Лимиты аутентификации должны срабатывать на подозрительных паттернах идентичности; лимиты провайдера—на агрегированном QPS или окнах всплесков. Смешивание заставляет операторов поднимать глобальные лимиты—ровно то, как расширяется окно брутфорса.
- Auth 429: короткие скользящие окна, экспоненциальные блокировки, явно исключайте loopback-скрейперы здоровья.
- Tool 429: соблюдайте
Retry-Afterпровайдера, ограничивайте параллельные вызовы инструментов на рабочее пространство, предпочитайте очередь+воркер слепым циклам повтора. - Смешанный: если срабатывают оба, сначала чините аутентификацию—повтор плохих токенов усиливает оба счётчика.
Матрица ответа
| Симптом | Вероятный класс | Первое действие |
|---|---|---|
| Всплеск только с одного IP / плохого bearer | Брутфорс аутентификации или повтор утёкшего токена | Отозвать токен, проверить дрейф окружения launchd, перезапустить doctor |
| 429 совпадают с рабочим трафиком | Насыщение квот инструмента или LLM | Снизить параллельные инструменты, шардировать рабочие пространства, повысить уровень провайдера |
| 429 только после деплоя | Новый дефолтный таймаут или политика повтора слишком агрессивны | Дифф конфигурации, канарейка на одном хосте, откат флагов шлюза |
Параметры бэкоффа, проходящие ревью
| Слой | Стартовая политика | Заметки |
|---|---|---|
| Сбои аутентификации шлюза | Скользящее окно: блок агрессивных IP после 10 сбоев / 60 с | Исключить задокументированные подсети скрейперов здоровья |
| HTTP инструмента к SaaS | Макс. 3 повтора с джиттером, сон не выше 60 с, если Retry-After не больше | Записывать накопленную задержку на рабочее пространство |
| Параллельные вызовы инструментов | По умолчанию 4 на рабочее пространство на хостах M4 Pro | Снижать при CPU > 85% дольше 2 минут |
Совет по Apple Silicon: рукопожатия TLS и разбор JSON не бесплатны—всплески повторов могут загрузить одно ядро производительности и увеличить хвостовую задержку. Предпочитайте очередь с видимыми метриками глубины неограниченному fan-out.
Восемь шагов внедрения
- Тегировать логи семейством маршрутов на периметровом прокси, если он есть.
- Раздельные счётчики для сбоев аутентификации и upstream 429.
- Реализовать разбор Retry-After в общем HTTP-клиенте для инструментов.
- Добавить синтетический чат-проб, запускающий безобидный инструмент раз в пять минут.
- Задокументировать заморозку, отключающую побочные эффекты инструментов без остановки здоровья.
- Нагрузочное тестирование записанным пиковым трафиком перед маркетинговыми пушами.
- Согласовать с безопасностью IP-allowlist для админ-поверхностей за пределами loopback.
- Масштабировать дополнительным шлюзом NodeMac Mac mini M4, если глубина очереди растёт весь спринт.
FAQ
Почему здоровые панели при 429 в чате?
Пробы бьют по другим маршрутам, чем пользовательские вызовы инструментов. Расширьте пробы лёгким покрытием путей инструментов.
Делить счётчики между auth и инструментами?
Нет—разделение предотвращает побочные блокировки и проясняет первопричину.
Почему выделенное оборудование NodeMac?
Стабильная сеть, постоянно включённый CPU для TLS-всплесков, региональное размещение рядом с провайдерами и пользователями.