RunToolz iconRunToolz
Welcome to RunToolz!
ДебагРазработкаРабочий процесс

Дебаг в 2 часа ночи: что реально помогает

Когда прод лежит, а мозг в тумане — вот инструменты и привычки, которые спасают.

RunToolz Team14 февраля 2026 г.3 min read

2 часа ночи. Телефон жужжит от PagerDuty-алерта. Что-то сломалось на проде. Мозг работает на процентов 40, от силы.

Не время для хитроумного дебага. Время для систематичных, скучных, надёжных техник, которые работают, даже когда ты еле на ногах.

Вот что я усвоил из слишком многих ночных инцидентов.

Шаг 1: Что изменилось?

90% продакшен-багов вызваны чем-то, что изменилось недавно. Деплой. Обновление конфига. Миграция базы. Истёкший сертификат.

Прежде чем читать код, разберись, что отличается от того момента, когда всё работало.

Сравни текущий конфиг с последним рабочим. Инструмент сравнения текста делает это за 10 секунд вместо того, чтобы всматриваться в два файла рядом.

Хотите попробовать сами?Сравнить файлы

Серьёзно. Однажды я 45 минут дебажил «загадочный» сбой API, который оказался лишней запятой в JSON-конфиге. Diff поймал бы это за секунды.

Шаг 2: Прочитай реальную ошибку

Звучит очевидно. Нет.

Когда ты устал, видишь сообщение об ошибке и сразу начинаешь строить гипотезы. «А, наверное, коннект к базе.» Тратишь 20 минут на проверку базы. А в ошибке было написано TypeError: Cannot read property 'name' of undefined. Ничего общего с базой.

Прочитай ошибку. Прочитай ещё раз. Прочитай стектрейс. Пройди до конкретной строчки кода.

Шаг 3: Сделай ошибку читаемой

Продакшен-логи — это бардак. Всё в одну строку, JSON-объекты не отформатированы, таймстемпы в Unix epoch.

Скопируй этот блоб JSON, вставь в JSON-форматтер, и внезапно ты можешь реально прочитать ответ с ошибкой.

Хотите попробовать сами?Отформатировать JSON

У меня форматтер всегда открыт в отдельной вкладке. Во время инцидентов я использую его каждые несколько минут, чтобы разбираться в API-ответах, записях логов и конфиг-файлах.

Шаг 4: Изолируй, не гадай

Уставший мозг обожает гадать. «Может, это вот это. Давай попробую поменять вон то.»

Не поддавайся. Каждое рандомное изменение добавляет неопределённости. Теперь ты не знаешь, исправлена ли исходная проблема или твой фикс породил новую.

Вместо этого: воспроизведи ошибку с минимальным возможным инпутом. Убери всё лишнее. Найди ту самую одну переменную, которая имеет значение.

Шаг 5: Проверь скучные вещи

Прежде чем лезть в код, проверь:

  • DNS: корректно резолвится?
  • Сертификаты: не истёк ли один?
  • Место на диске: сервер не забит?
  • Память: что-то утекает?
  • Зависимости: внешний API не лежит?

У меня на мониторе приклеена бумажка с этими пятью пунктами. Во время инцидента я проверяю их первыми. Они были корневой причиной чаще, чем реальные баги в коде.

Набор инструментов для дебага в 2 ночи

Вот вкладки, которые я открываю, когда меня будит алерт:

  1. Text diff — для сравнения конфигов, переменных окружения, файлов деплоя
  2. JSON-форматтер — для чтения API-ответов и записей логов
  3. Тестер регулярок — для поиска по логам с паттернами
  4. Простой текстовый редактор — для заметок о том, что я пробовал

Последний пункт важнее, чем ты думаешь. В 2 часа ночи твоя оперативная память — мусор. Записывай, что ты пробовал и что получилось. Будущий ты скажет спасибо прошлому тебе.

Хотите попробовать сами?Тестировать regex-паттерны

После инцидента

Когда пожар потушен, не просто ложись спать обратно. Потрать пять минут и запиши:

  • Что сломалось
  • Почему сломалось
  • Что починило
  • Как это предотвратить в следующий раз

Завтра ты это не вспомнишь. Запиши сейчас.


Лучший дебаг в 2 ночи — это не про то, чтобы быть умным. Это про то, чтобы быть систематичным. Сравни конфиг. Прочитай ошибку. Отформатируй логи. Проверь скучные вещи. Запиши. Вот и весь плейбук.