Что мы видим: error rate вырос с 0,3% до 12%, p99 – с 400 мс до 4,8 секунды. CPU при этом всего 46%, а один downstream начал отвечать примерно в 5 раз медленнее.
Проблема уже есть, пользователи её чувствуют. Но данных пока мало, чтобы уверенно сказать, что именно всё сломало.
Сначала я бы посмотрел, где именно началась деградация. Какие ручки просели? Весь ли трафик затронут? Проблема сидит в одном сервисе или уже потянула за собой соседние? Тут в ход идут и метрики, и логи, и трейсы – что быстрее даст картину происходящего.
После этого уже можно решать, что делать. Если всё указывает на последний релиз – откатываемся. Если тормозит dependency – ограничиваем его влияние, включаем fallback или degraded mode. Если сервис просто не вывозит нагрузку, часть трафика, возможно, придётся временно отрезать.
С рестартом pods я бы тоже не спешил. Если причина в медленном downstream или перегрузе, рестарт ничего не исправит. Иногда ещё и добавит проблем.
То же самое с rollback. То, что деградация началась сразу после релиза, ещё не значит, что виноват именно он. Связь нужно хотя бы быстро проверить.
В общем, во время инцидента необязательно сначала раскопать полный root cause. Достаточно понять, где примерно источник проблемы и насколько сильно он уже влияет на систему, чтобы принять первое безопасное действие.
На курсе «Паттерны отказоустойчивости в микросервисах на Go» как раз тренируем такой ход мыслей: сначала смотрим на симптомы и blast radius, потом выбираем, что делать с системой прямо сейчас.
