P1: Разобрать HTTP 429 на IFT hold ×3 #32
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проблема
Hold ×3 на IFT: overall BOUNDARY_HIT из‑за массовых HTTP 429 (~3772), при этом mean latency оставалась низкой (~44 ms). Неясно, кто отвечает 429 (приложение, Traefik/Coraza, другой middleware) и какие пороги.
Влияние
При replicas×3 connect-слой держится, но клиенты получают отказ по rate limit — потолок capacity искажён.
Ожидаемый результат
Известен источник 429, пороги, поведение под loadtest; при необходимости — bypass/raise для IFT loadtest или тюнинг лимитера.
Критерии приёмки
Файлы (подсказка)
Приоритет
P1
Связь
EventHub/EventHubBack#30
Диагностика
Источник 429 — Traefik rateLimit, не Erlang.
Файл:
EventHubDevOps/ift/traefik/dynamic_conf.ymlПо умолчанию лимит per source IP. Tsung идёт с одного IP → ~83 req/s после burst 500. Hold ×3 легко превышает → тысячи 429 при низкой latency.
Исправление — в EventHubDevOps (конфиг IFT Traefik).
Варианты
A (рекомендую): для IFT поднять
average/burst(напр. average 2000 / period 1s, burst 2000) — стенд для capacity, не прод-защита.B: на время prepare снимать
api-ratelimitс router, на restore возвращать (точнее для loadtest, сложнее).C: оставить лимит как есть и считать 429 потолком edge; документировать в README/спеке.
Жду выбор; по умолчанию при «делай» — A.
Иду по A: в
EventHubDevOps/ift/traefik/dynamic_conf.yml:Stage/prod не трогаю. Катаю конфиг на IFT.
Конфиг залит на IFT (
/opt/eventhub-ift/devops/ift/traefik/dynamic_conf.yml), traefik force-update converged, health API/admin OK.Осталось: перепроверить hold ×3 (по желанию) и закоммитить DevOps-изменение. Stage не трогали.
Корень 429 — Traefik
api-ratelimit(per IP). Фикс в EventHubDevOpsebffa25(IFT: 2000/1s), уже на стенде.Закрываю.