Кроме качества, очень хотелось смотреть еще и на производительность. Перформанс — сложно оцениваемая шутка. Оценка в лайтхаусе не всегда показывает что-то в реальном мире. Поэтому, мы решили на первом этапе брать какие-то другие цифры.
Взяли из web.dev/vitals/ — Largest Contentful Paint и Cumulative Layout Shift. Вообще, основных метрик три в этом скоре, еще First Input Delay. Но его нельзя измерить в лаборатории, а мы пока не хотим собирать эти данные с пользователей.
Тут уже тысячу раз рассказывали, что значат эти метрики. Если пропустили, почитайте на сайте web.dev/vitals/
К счастью, и LCP и CLS можно собирать через npm-пакет lighthouse. Правда ему требуется запущенный Хром. Пришлось в контейнере с приложением запускать еще и браузер через chrome-launcher
И, кстати, именно с ним мы хапанули гавна — есть какой-то плавающий баг, который приводит к появлению зомби-процессов. Они копились и через некоторое время мы теряли целую ноду в кластере.
Девопсы очень ругались, а мы очень чинили. К сожалению, до конца пофиксить так и не получилось, но сейчас это происходит не часто.
Получилось в итоге как-то
Сейчас экспортер собирает еще Speed Index, Total Blocking Time, Time to Interactive, First Contentful Paint и Performance Score. Их добавили уже другие команды под свои нужды.