MMeridianстатус
История / 12 августа 2026
деградациярешено

Повышенная задержка 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 дней
медиана ответа API по внешним проверкам за 30 дней - та же полоса, что на странице состояния

Что произошло

Ночная выгрузка добавила в таблицу остатков заметно больше строк, чем обычно. Планировщик запросов пересчитал статистику и выбрал для выборки списка товаров другой путь - без нужного индекса. На небольших контурах это осталось незаметным, а на крупных выборка стала перебирать миллионы строк.

Почему не заметили раньше

Проверка следила за долей ошибок, а не за временем ответа: формально сервис отвечал, и ошибок не было. Оповещение по времени ответа существовало, но с порогом в 5 секунд - между обычными 83 мс и порогом помещалась вся деградация.

Что сделали

  • Добавили составной индекс, вернувший план запроса.
  • Опустили порог оповещения по медиане до 500 мс и добавили отдельное - по 95-му перцентилю.
  • Ограничили размер одной ночной выгрузки, чтобы статистика не менялась скачком.

Что меняем

  • Журнал медленных запросов теперь собирается постоянно, а не включается руками во время инцидента.
  • План ключевых запросов проверяется на копии рабочих данных перед каждым выкатом.
  • Дежурному добавлена готовая карточка: что смотреть первым при росте времени ответа.