🔥

Тред (Игорь Камышев)


Кроме фронтендов, наша команда заведует рядом бекенд-сервисов на Node.js. К ним, конечно, тоже нужен мониторинг. Нам не пришлось писать отдельный экспортер — прометеус может приходить прямо к сервису и брать его метрики. Тут особенных инсайтов нет.

Мы собираем число запросов в секунду на входящем nginx по статусам ответа, если не-200 ответов становится больше чем мы ожидаем, шлем алерты в Слак.

Смотрим на время ответа сервиса — медианное, 99-перцентиль и 99.99-перцентиль, шлем алерты, если видим деградацию. Плюс, замеряем там же на входящем nginx время, которое он ожидает ответа от сервиса.

Да, все наши сервисы живут в Кубернетесе, оттуда можно удобно брать потребляемую контейнерами память и CPU. Смотрим за утечками памяти и аномалиями в нагрузке.

Ну и главное, мы собираем метрики внутреннего состояния Node.js через библиотеку github.com/siimon/prom-cl…. Она отдает тысячу разных метрик, но мы пока не придумали что с ними делать, поэтому оставили две

лаг ивент-лупа (сколько таска в ивент-лупе ждет, пока ее возьмут) и число открытых хэндлов (сколько сейчас открыто коннекшенов или файлов или других ресурсов).

Если лаг ивент-лупа становится слишком большим — нужно что-то делать. Пока просто шлем алерт в Слак, в перспективе хотим автоматически докидывать новых инстансов и балансировать на них нагрузку.