Что отслеживать перед наймом SRE в небольшой компании
Узнайте, что отслеживать перед наймом SRE: несколько сигналов, которые показывают боль пользователей, накопление очередей и плохие релизы без роста шумного стека.

Почему небольшие команды тонут в дашбордах
Небольшая компания может собрать 80 графиков и всё равно пропустить одну проблему, которая стоит денег. Команды добавляют графики, потому что каждый инструмент их предлагает, а не потому что кто‑то действительно в них нуждается. Через несколько недель панель превращается в обои.
Оповещения делают ситуацию хуже. Приложение шлёт одно оповещение, база данных — другое, а инструмент очередей — ещё пять. Вскоре никто не понимает, что важно в первую очередь, и люди отключают шум и продолжают работать.
Пользователи обычно чувствуют проблему раньше, чем инфраструктурные графики становятся драматичными. Страница оформления заказа может замедлиться до шести секунд при нормальном CPU. Письмо для подтверждения регистрации может прийти с опозданием на десять минут при ровной памяти. Очередь может расти полчаса, прежде чем какой‑нибудь серверный график покажет аномалию.
Именно поэтому слишком много графиков часто скрывает простые проблемы. Команда смотрит на здоровье системы и пропускает боль клиента. Тикеты поддержки накапливаются, задания ждут в очереди, а плохой релиз проходит незамеченным, потому что дашборд отвечает не на те вопросы.
Метрика заслуживает места только тогда, когда кто‑то будет её проверять и действовать по результату. Если за ней никто не отвечает или команда ничего не может с ней сделать — это шум.
Хорошие сигналы обычно проходят четыре простых теста. Они соответствуют реальному действию пользователя, например входу или оплате. Один человек знает, что делать, когда показатель падает. Команда видит изменение в пределах нескольких минут. И сигнал отвечает на простой вопрос: «Застряли ли пользователи прямо сейчас?»
Начните меньше, чем думаете. Пара метрик боли пользователя, пара проверок очередей и пара сигналов о здоровье релизов победят огромную систему наблюдаемости, которой никто не доверяет. Меньше графиков может выглядеть не так впечатляюще, но это экономит время и ловит проблемы, которые люди действительно замечают.
Начните с пути пользователя, который приносит деньги
Небольшой команде не нужно пятьдесят графиков в первый день. Нужен короткий список действий, которые превращают посетителя в клиента или удерживают клиента активным. Если эти действия работают, бизнес движется. Если они ломаются, пользователи почувствуют это быстро.
Большинство компаний может назвать эти действия за несколько минут: создать аккаунт, начать пробный период, войти в систему, оплатить, продлить подписку, загрузить первый файл, отправить первый запрос, пригласить коллегу или закончить настройку. Берите только шаги, связанные с доходом, активацией или удержанием. Остальное оставьте на потом.
Для каждого действия запишите, как выглядит успех простыми словами. «Пользователь регистрируется и попадает на дашборд за менее чем 20 секунд» — ясно. «Оплата завершается и доступ меняется сразу» — тоже ясно. Если никто не может описать хороший результат, никто не согласится, что система скатилась, когда что‑то пойдёт не так.
Затем отслеживайте три вещи на этом пути: долю ошибок, время ожидания и повторные попытки. Доля ошибок показывает, когда пользователи застревают. Время ожидания показывает, когда система формально работает, но ощущается плохо. Повторы показывают, когда пользователи или фоновые задания должны попытаться снова, потому что первая попытка не прошла.
Представьте простой SaaS‑продукт, который зарабатывает, когда пользователи загружают данные и запускают отчёт. Если загрузки падают в 2% случаев — пользователи жалуются. Если загрузки проходят, но занимают 90 секунд вместо 10, многие уходят до начала отчёта. Если клиент повторяет три раза перед успехом, ваши очереди и воркеры уже могут быть под нагрузкой, даже если итоговый статус показывает «ok».
Это правильное место для начала перед наймом SRE: несколько шагов, где встречаются деньги, доверие и повседневное использование. Держите список коротким, чтобы один человек мог проверить его за пять минут, а команда обсудить без открытия десяти вкладок.
Сигналы, которые быстро показывают боль пользователей
Начните с чисел, которые пользователи чувствуют за секунды. Главный вопрос прост: «Могут ли люди сделать то, зачем они пришли?»
Первый сигнал — это уровень ошибок на потоках, которые приносят деньги или держат клиентов активными. Выберите два‑три пути: регистрация, вход, оформление заказа, загрузка файлов или экспорт отчёта. Если ошибки на одном из этих путей прыгают — пользователи заметят это сразу, даже если остальная часть приложения выглядит нормально.
Время ответа тоже важно, но только там, где люди действительно ждут. Отслеживайте p95 латентности на страницах и действиях, где медлительность ощущается как поломка. Среднее значение скрывает плохой опыт. Если большинство запросов выполняются за 300 мс, но медленные 5% занимают 8 секунд при оформлении заказа — это реальная проблема.
Проверяйте доступность извне, а не только по внутренним логам. Внутренние health‑чекен могут оставаться зелёными, в то время как реальные пользователи сталкиваются с проблемами DNS, битых редиректов, проблемами CDN или региональными сбоями. Простая внешняя проверка основных точек входа даст более честную картину.
Набор для старта небольшой: уровень ошибок для основных пользовательских потоков, p95 время ответа для страниц, где люди ждут, внешняя доступность для главной, входа и оформления заказа, плюс счётчик неудачных сессий по сравнению с нормальным трафиком.
Одни цифры всё ещё могут вводить в заблуждение. Сопоставьте жалобы поддержки с дашбордом. Если клиенты пишут «платёж застрял», а графики выглядят нормально, мониторинг пропускает реальный путь, неверный порог или контекст пользователя.
Счётчики неудачных сессий или запись сессий могут заполнить этот разрыв. Команда может видеть лишь лёгкий рост ошибок API, в то время как тикеты поддержки взлетают, а запись показывает, что пользователи нажимают одну и ту же кнопку три раза и сдаются. Это — боль пользователя. Ей нужно заняться прежде, чем углубляться в наблюдаемость.
Сигналы, которые показывают накопление очередей
Проблемы с очередями часто начинаются в фоне. Приложение всё ещё открывается, дашборд выглядит спокойно и никто не видит пожара. Между тем импорты, письма, отчёты или биллинговые задания сидят в очереди и ждут.
Начните с глубины очереди, числа заданий, ожидающих выполнения. Если это число растёт 10–15 минут подряд, работы приходят быстрее, чем воркеры успевают их обрабатывать.
Но глубина может обмануть. Очередь может пикнуть в час пик и самостоятельно восстановиться. Поэтому так важен возраст самого старого задания. Если ждёт 200 заданий, но самое старое только 30 секунд — возможно, всё в порядке. Если ждёт 40 заданий, а самое старое — 18 минут, пользователи уже чувствуют задержку.
Далее измерьте полное время от создания задания до его завершения. Это показывает, что переживает клиент, а не то, что отчитывает воркер. Генератор отчётов, который раньше завершался за 45 секунд, а теперь — за 9 минут, создаёт реальную боль, даже если сами процессы воркеров выглядят активными.
Уровень ошибок воркеров и частота повторов добавляют недостающий контекст. Повторы могут делать систему загруженной, при этом почти ничего не делая. Если растут ошибки, повторные попытки и возраст очереди одновременно, проблема обычно не в одном трафике. Чаще всего это плохой ввод, медленная зависимость или релиз, сделавший каждую задачу тяжелее.
Одна закономерность заслуживает особого внимания: backlog растёт, а воркеры остаются занятыми. Это обычно означает, что проблема не только в мощности. Воркеры могут застревать на медленных задачах, повторять одну и ту же работу или тратить время на один плохой шаг.
Небольшая SaaS‑команда может заметить это быстро. Скажем, PDF‑счета обычно генерируются меньше минуты. После релиза воркеры держатся загруженными, глубина очереди удваивается, возраст старейшего задания достигает 25 минут, и повторы растут. Это указывает на проблему релиза гораздо быстрее, чем графики CPU или памяти.
Для маленькой команды этих сигналов часто достаточно. Они близки к боли пользователя и показывают, нужно ли добавлять воркеров, чинить сломанные задания или откатывать код.
Сигналы, которые обнаруживают плохие релизы
Плохие релизы обычно оставляют отпечатки через несколько минут. Вам не нужен огромный стек наблюдаемости, чтобы их поймать. Нужен небольшой набор графиков, который связывает деплои с воздействием на пользователей.
Начните с того, чтобы ставить маркеры каждого деплоя на те же графики, которые команда уже проверяет ежедневно. Если ошибки, задержка или неудачные задания растут через две минуты после релиза, график должен это явно показывать. Когда маркеры деплоев живут в отдельном инструменте, команды теряют время на споры о тайминге.
Сравнивайте уровень ошибок прямо до и сразу после каждого релиза. Для небольших команд окно в 15–30 минут работает хорошо. Смотрите общий уровень ошибок, но также и конечную точку или действие, к которому прикасался релиз. Маленькое изменение в оформлении заказа может удвоить ошибки платежей, в то время как общий системный график остаётся в норме.
Количество откатов важно. Время восстановления важно ещё больше. Если команда часто откатывает или нужно 45 минут, чтобы остановить ущерб, это скажет больше, чем зелёный статус деплоя. Ведите простую запись того, как часто релизы требуют отката и как долго пользователи ощущают проблему.
Для мобильных или настольных приложений следите за частотой падений сессий после обновлений. Один плохой клиентский релиз может выглядеть тихо на сервере, в то время как пользователи сталкиваются с зависаниями, перезапусками или потерей работы.
Ещё одна проверка ловит много проблем: отслеживайте основной бизнес‑путь после каждого релиза. Выберите один поток: регистрация, оплата счёта, экспорт отчёта или отправка заказа. Если успешность падает с 96% до 82%, у вас проблема релиза, даже если CPU, память и аптайм в норме.
Небольшая команда может добиться многого с одним экраном, который показывает маркеры деплоев, уровень ошибок, количество откатов, время восстановления и успешность одного бизнес‑пути. Если релиз касается клиентского приложения, добавьте частоту падений сессий.
Как выбрать первую панель
Ваша первая панель должна отвечать на один вопрос менее чем за 30 секунд: могут ли пользователи завершить ту часть продукта, которая приносит деньги? Если не может — она уже слишком большая.
Начните с одного пользовательского пути и одной очереди. Для небольшой SaaS‑команды это может быть регистрация и фоновая очередь, которая отправляет письма пробного периода или создаёт аккаунты. Это связывает панель с реальной болью клиента, а не со стеной системных графиков.
Держите первую версию маленькой. Пяти‑семи графиков достаточно для большинства команд. Вам нужен один сигнал о неудаче — например процент успешности или уровень ошибок по выбранному пути, один сигнал задержки — p95 или возраст старейшего задания, один сигнал риска релиза — ошибки по версии деплоя, один график объёма, чтобы пик трафика не вводил в заблуждение, и одна простая пометка, кто отвечает за панель в окнах релизов.
Задавайте пороги, которые люди могут объяснить без открытия руковода. Если успешность регистрации падает ниже 98% в течение пяти минут — зовите дежурного. Если самый старый элемент очереди сидит более 10 минут — сигнальте в командный канал. Если ошибки удваиваются в течение 15 минут после деплоя — остановите выкатывание и проверьте релиз.
Владение важнее, чем многие команды ожидают. Во время релизов один человек должен смотреть графики, один — делать релиз, и один — решать об откате. Если один человек делает всё сразу, он упускает детали.
Ещё одно правило экономит множество лишних графиков: после каждого инцидента удаляйте любой график, который никто не проверял. Дашборд должен заслужить своё место. Если график не помог во время последней реальной проблемы — вырезайте его.
Простой пример из жизни небольшой SaaS‑команды
Команда из шести человек выпустила в пятницу изменение для экспорта счётов. Релиз выглядел мелким: они изменили, как задачи экспорта переходят из приложения в фонового воркера, и деплой прошёл без ошибок.
Через десять минут один график начал изгибаться неправильно: возраст очереди экспорта. Задания всё ещё попадали в очередь, но самое старое ожидание становилось всё длиннее. Это имело значение больше, чем CPU или память, потому что клиенты чувствовали это первыми. Нагрузка на сервер могла быть нормальной. Застрявшая очередь — нет.
Скоро пришли сообщения в поддержку. Клиенты писали, что экспорт остаётся в статусе «processing» и никогда не завершается. Нагрузка на сервер всё ещё выглядела нормально. База данных была в порядке. Веб‑приложение загружалось быстро. Если бы команда смотрела только метрики хостов, они бы пропустили проблему, пока не поступило бы больше жалоб.
Им понадобились всего три графика, чтобы найти причину: возраст очереди экспорта, процент успешности экспорта и маркер деплоя на той же временной линии.
Эти графики рассказали ясную историю. Возраст очереди вырос сразу после релиза. Процент успешности упал в то же время. Маркер деплоя показал точный момент включения изменения. Баг оказался в коде воркера, а не в API, базе данных или инфраструктуре.
Один инженер посмотрел логи воркера и нашёл цикл повторов из‑за неверной проверки состояния. Задания падали, возвращались в очередь и блокировали более новые работы. Команда откатила релиз за несколько минут, и возраст очереди начал падать почти сразу.
Именно поэтому наблюдаемость в маленькой компании должна оставаться узкой. Пара сигналов о здоровье релизов бьёт стену графиков. Выберите числа, которые соответствуют реальной боли пользователей, и поставьте их рядом с историей деплоев. Когда что‑то ломается, нужен короткий путь от «клиенты застряли» до «этот релиз это вызвал».
Ошибки, которые команды совершают в начале
Когда команды спрашивают, что мониторить перед наймом SRE, они часто начинают слишком низко в стеке. Смотрят CPU, память и диск, а пропускают момент, когда регистрация ломается или оформление заказа перестаёт работать.
Спокойный сервер не значит здоровый продукт. Если пользователи получают ошибку на странице оплаты 10 минут, ущерб реальный, даже если нагрузка на хосты выглядит нормально.
Они мониторят машины, а не путь пользователя
Маленькие команды часто добавляют графики сервис за сервисом, потому что это кажется осязаемым. Через месяц они могут рассказать вам про использование памяти Redis и задержки API по эндпоинтам, но не ответят на один базовый вопрос: может ли новый пользователь зарегистрироваться, подтвердить почту и начать пользоваться продуктом?
Эта пропасть важнее, чем ожидают. Компания может пережить краткий всплеск CPU. Не дастся столько поблажек, если лиды не могут создать аккаунт в понедельник утром.
Лучший первый навык прост: нарисуйте один путь денег и следите за ним от начала до конца. Для многих команд это регистрация, вход, оплата и одно первое успешное действие в приложении.
Они дают алертам тухнуть
Ранние оповещения часто начинаются с хороших намерений, но быстро превращаются в фоновый шум. Кто‑то добавляет страницу при каждом всплеске трафика, при каждом небольшом росте после деплоя и при каждом коротком скачке очереди. Через две недели команда перестаёт воспринимать канал всерьёз.
Старые алерты усугубляют ситуацию. Продукт меняется, архитектура меняется, а алерт остаётся. Полгода спустя он всё ещё срабатывает для задачи, которая больше не важна, в то время как новый импорт молча падает.
Команды также смешивают debug‑графики и бизнес‑графики слишком рано. Тогда доходы, регистрации, перезапуски подов, глубина очереди и одноразовые тестовые метрики борются за место на одном экране. Когда что‑то ломается, люди теряют время, сканируя шум.
Держите две отдельные панели. Одна отвечает: «Проходят ли пользователи по основному пути?» Вторая помогает инженерам разбираться, почему.
Короткий обзор каждые несколько недель помогает. Посмотрите, какие алерты сработали и на которые никто не реагировал, какие шаги, важные для пользователя, всё ещё без сигнала, какие графики нужны только при глубоком дебаге и какие алерты относятся к давно удалённым функциям. Большинству команд рано нужны не дополнительные графики, а меньше сигналов и чище алерты.
Короткий еженедельный чек‑лист
Небольшой команде не нужен длинный обзор. Раз в неделю потратьте 15 минут на одни и те же проверки и запишите ответы простыми словами. Если ответ занимает слишком много времени — мониторинг уже слишком запутан.
Задавайте вопросы, указывающие на боль пользователя, проблемы с очередями и риск релизов:
- Может ли один человек за 30 секунд сказать, могут ли пользователи войти и завершить оплату?
- Оставалась ли какая‑то очередь «старой» часами вместо того, чтобы сливаться?
- Изменил ли последний релиз уровень ошибок, время ответа или время ожидания задач?
- Не отмахивалась ли команда от одного и того же оповещения три раза и более?
- Можно ли удалить хотя бы один график, которым никто не пользовался на этой неделе?
Простое правило помогает: каждый график должен отвечать на живой вопрос. «Могут ли пользователи оплатить?» «Застряли ли задания?» «Вредил ли вчерашний релиз чему‑то?» Если график не может этого, скорее всего, он не нужен на первой панели.
Одна небольшая SaaS‑команда может запускать этот обзор в понедельник утром и поймать многое с минимальными усилиями. Если вход работает, оплаты проходят, возраст очередей остаётся стабильным, а релизы не двигают уровень ошибок — неделя началась с устойчивой базы.
Что делать дальше
Держите настройку меньше, чем думаете, что нужно. Небольшой команде не нужна стена графиков. Нужны несколько сигналов, которые быстро скажут, могут ли пользователи завершить действие, удерживающее бизнес.
Начните с одного пользовательского пути, одной очереди и одного вида релизов. Выберите поток, который приносит деньги или держит клиентов активными: регистрация, оформление заказа или доставка отчёта. Затем выберите очередь, которая может тихо накапливаться и вредить этому потоку. Наконец, добавьте вид релизов, показывающий ошибки, задержки и риск отката после каждого деплоя.
Хороший стартовый набор прост: один график успешности и задержки на главном пользовательском пути, один график глубины очереди и возраста старейшего задания, один график ошибок сразу после релиза и один чёткий владелец для каждого графика и алерта.
Запустите эту настройку на две недели перед добавлением новых инструментов или метрик. Это краткое испытание многому научит. Вы увидите, какие оповещения срабатывают при реальной боли пользователей, какие создают только шум и какие графики никто не проверяет. Если сигнал никогда не меняет решения — вырежьте его.
Каждому сигналу нужен один владелец, который решает, верный ли порог, кто получает пейдж, и какой первый шаг должен быть. Если у алерта нет владельца, команда проигнорирует его после третьей ложной тревоги.
Некоторые команды застревают, потому что у них уже слишком много дашбордов и нет ясной отправной точки. В таком случае короткий внешний обзор помогает. Oleg Sotnikov at oleg.is работает со стартапами и малыми бизнесами в роли fractional CTO, и такой тип чистки чаще всего не про покупку новых инструментов, а про выбор нескольких сигналов, которые соответствуют реальной боли пользователей.
Хорошая первая версия специально скучная. Три‑четыре сигнала, которые проверяют каждую неделю, бьют по пятидесяти графикам, которым никто не доверяет.
Часто задаваемые вопросы
What should a small company monitor first?
Начните с одного пути, который приносит деньги, одной фоновой очереди и показателей здоровья релизов. Для большинства команд это означает показатель успешности регистрации или оплаты, p95 задержки на этом пути, возраст самого старого задания в очереди и уровень ошибок после каждого деплоя.
Why are CPU and memory charts not enough?
Потому что пользователи могут столкнуться с проблемой, пока серверы выглядят спокойными. Страница оплаты может замедлиться, письмо подтверждения может прийти с опозданием, или воркер может застрять в цикле повторов без заметного роста метрик хостов.
How many charts should the first dashboard have?
Держите панель небольшой: примерно пять — семь графиков. Если один человек не может просмотреть их за 30 секунд и ответить, могут ли пользователи завершить основное действие, нужно урезать.
Which user flow should we track first?
Выберите путь, который связан с доходом, активацией или удержанием. Хорошие первые варианты — регистрация, вход, оплата, первый загруз или доставка отчёта. Возьмите то, что сильнее всего бьёт по бизнесу, когда ломается.
What queue metrics matter most?
Наблюдайте глубину очереди, возраст самого старого задания, полное время выполнения от создания до завершения и частоту повторов или ошибок. Возраст самого старого задания обычно рассказывает историю быстрее всех, потому что он совпадает с задержкой, которую чувствует пользователь.
How do we spot a bad release quickly?
Ставьте маркеры деплоев на те же графики, которые команда уже смотрит. Затем сравнивайте уровень ошибок, задержку, время ожидания заданий и процент успешности одного бизнес-пути в течение 15–30 минут после деплоя.
What alert thresholds should we start with?
Используйте пороги, которые люди могут объяснить без чтения документации. Например: оповестить, если успешность регистрации ниже 98% в течение 5 минут; предупредить команду, если самый старый задав очереди больше 10 минут; остановить выкатывание, если после деплоя резко растут ошибки.
Who should own the dashboard and alerts?
Назначьте каждому сигналу одного владельца. Этот человек следит за порогом, решает, кто получает оповещение, и актуализирует алерт при изменении продукта. Во время релиза разделите роли: один смотрит графики, другой делает релиз, третий решает откатывать или нет.
How often should we review our monitoring setup?
Короткий обзор раз в неделю. Проверяйте: могут ли пользователи войти и оплатить; не застряла ли какая-то очередь; не повлиял ли последний релиз на ошибки или задержки; какие оповещения игнорировали. Удаляйте графики, которыми никто не пользовался.
When does it make sense to get outside help?
Когда у вас уже много панелей, но вы всё ещё не понимаете, что реально мешает пользователям, или когда оповещения срабатывают всё время и им уже никто не доверяет. Короткий обзор от опытного CTO помогает сократить набор метрик и сделать его полезным.