Повышенная задержка API
12 августа 2026, 11:18-12:00 МСК, 42 мин. Компонент: API.
- РешеноЗадержка вернулась к обычной за три минуты. Данные не пострадали, потерянных запросов нет.12 августа 2026, 12:18 МСК
- НаблюдаемДобавили индекс по паре контур-обновление, план запроса вернулся к прежнему. Показатели вернулись к обычным, наблюдаем.12 августа 2026, 11:53 МСК
- Причина найденаПричина - план запроса, который после ночного роста таблицы остатков перестал попадать в индекс. Готовим исправление.12 августа 2026, 11:36 МСК
- РасследуемМедиана ответа /v1/products выросла до 2,1 с, часть клиентов завершает запросы по своему таймауту. Разбираемся.12 августа 2026, 11:21 МСК
Затронуто: API. Остальные компоненты работали штатно.
Разбор
| Что | Как было |
|---|---|
| Длительность | 11:18-12:00 МСК, 42 мин |
| Влияние | Медиана ответа /v1/products 2,1 с вместо 83 мс, около 3% запросов завершились таймаутом на стороне клиентов |
| Обнаружение | Автоматическая проверка, 11:19 |
| Данные | Не затронуты, потерь нет |
Хронология
| 11:18 | Медиана ответа списка товаров начала расти, очередь запросов к хранилищу удлинилась |
| 11:19 | Сработала проверка задержки, дежурный поднят |
| 11:26 | Исключили внешние причины: сеть и нагрузка в норме, число запросов обычное |
| 11:34 | Нашли запрос с планом без индекса, подтвердили по журналу медленных запросов |
| 11:47 | Начали строить индекс на реплике |
| 11:58 | Индекс переключён на основной узел, план запроса вернулся к прежнему |
| 12:00 | Задержка вернулась к обычной, инцидент закрыт |
медиана ответа API по внешним проверкам за 30 дней - та же полоса, что на странице состояния
Что произошло
Ночная выгрузка добавила в таблицу остатков заметно больше строк, чем обычно. Планировщик запросов пересчитал статистику и выбрал для выборки списка товаров другой путь - без нужного индекса. На небольших контурах это осталось незаметным, а на крупных выборка стала перебирать миллионы строк.
Почему не заметили раньше
Проверка следила за долей ошибок, а не за временем ответа: формально сервис отвечал, и ошибок не было. Оповещение по времени ответа существовало, но с порогом в 5 секунд - между обычными 83 мс и порогом помещалась вся деградация.
Что сделали
- Добавили составной индекс, вернувший план запроса.
- Опустили порог оповещения по медиане до 500 мс и добавили отдельное - по 95-му перцентилю.
- Ограничили размер одной ночной выгрузки, чтобы статистика не менялась скачком.
Что меняем
- Журнал медленных запросов теперь собирается постоянно, а не включается руками во время инцидента.
- План ключевых запросов проверяется на копии рабочих данных перед каждым выкатом.
- Дежурному добавлена готовая карточка: что смотреть первым при росте времени ответа.