Кроме фронтендов, наша команда заведует рядом бекенд-сервисов на Node.js. К ним, конечно, тоже нужен мониторинг. Нам не пришлось писать отдельный экспортер — прометеус может приходить прямо к сервису и брать его метрики. Тут особенных инсайтов нет.
Мы собираем число запросов в секунду на входящем nginx по статусам ответа, если не-200 ответов становится больше чем мы ожидаем, шлем алерты в Слак.
Смотрим на время ответа сервиса — медианное, 99-перцентиль и 99.99-перцентиль, шлем алерты, если видим деградацию. Плюс, замеряем там же на входящем nginx время, которое он ожидает ответа от сервиса.
Да, все наши сервисы живут в Кубернетесе, оттуда можно удобно брать потребляемую контейнерами память и CPU. Смотрим за утечками памяти и аномалиями в нагрузке.
Ну и главное, мы собираем метрики внутреннего состояния Node.js через библиотеку github.com/siimon/prom-cl…. Она отдает тысячу разных метрик, но мы пока не придумали что с ними делать, поэтому оставили две
лаг ивент-лупа (сколько таска в ивент-лупе ждет, пока ее возьмут) и число открытых хэндлов (сколько сейчас открыто коннекшенов или файлов или других ресурсов).
Если лаг ивент-лупа становится слишком большим — нужно что-то делать. Пока просто шлем алерт в Слак, в перспективе хотим автоматически докидывать новых инстансов и балансировать на них нагрузку.