Из чего собран приватный мониторинг фронтенда
Grafana Faro, OpenTelemetry и собственный бэкенд приёма событий. Дороже, чем подключить сторонний сервис за пять минут — и через год это инфраструктура без внешней зависимости.
Стек приватного мониторинга фронтенда у нас собран из трёх частей: Grafana Faro на стороне браузера, OpenTelemetry как формат и транспорт, собственный бэкенд для приёма событий.
Ни одна из трёх не является нашей разработкой, и это преимущество: заменяемы все.
Зачем свой приём событий
Потому что это единственное место, где обычно возникает привязка.
Faro собирает данные в браузере, OpenTelemetry описывает их в открытом формате. Если приём событий — чужой сервис, то данные всё равно проходят через него, и все рассуждения о приватности заканчиваются на этом шаге.
Свой приёмник — небольшой сервис, и он замыкает контур: данные о поведении ваших пользователей не покидают вашу инфраструктуру.
Почему OpenTelemetry, а не свой формат
Потому что формат — то, что переживает смену инструментов.
Панели можно поменять, приёмник переписать, хранилище заменить. Данные, собранные в открытом стандарте, при этом остаются пригодными. Данные в собственном формате привязывают к собственному инструменту — то есть к нам, а это ровно то, от чего мы предлагаем уйти.
Плюс связность: когда фронтенд и бэкенд говорят на одном формате, сигналы живут вместе. Тогда исчезает ручное сопоставление двух картин и появляется возможность видеть систему целиком.
Что стоит на панели по умолчанию
В продуктах с пользовательским трафиком — основные веб-показатели с разбивкой по странам и устройствам, и отдельный взгляд на хвост распределения.
Последнее — самое важное и самое пропускаемое. Средние значения почти всегда врут: проблема, затрагивающая десятую часть пользователей, в среднем почти не видна, а в верхних процентилях видна сразу.
Разбивка по странам и устройствам нужна по той же причине. Сценарий, который на быстром ноутбуке проходится за секунду, на среднем телефоне в плохой сети может не проходиться вовсе — и в общем среднем это утонет.
Честно про цену
Такое решение дороже, чем подключить сторонний сервис за пять минут. Дороже на старте и требует внимания в эксплуатации: это сервисы, которые надо обновлять и за которыми надо следить.
Что получается через год: инфраструктура без внешней зависимости, без лимитов по числу событий и с предсказуемой стоимостью владения.
Ключевое слово — «через год». На горизонте недели сторонний сервис выигрывает всегда, и делать вид, что это не так, бессмысленно.
Когда это точно не нужно
Небольшому проекту без своей инфраструктуры. Один статический сайт с тысячей посетителей в день не оправдывает ни сервисов, ни времени на них.
Граница проходит там, где либо есть требование к размещению данных, либо трафик достаточен, чтобы тарифная сетка внешнего сервиса начала работать против вас, либо нужна долгая история, которой в тарифах нет.
Что мы берём в работу
Проекты с нуля: поставить стек, настроить оповещения, научить команду. И разбор существующего зоопарка панелей — что оставить, что убрать, что заменить.
Второе чаще и обычно полезнее. Проект с тридцатью графиками на панели и десятью оповещениями, на которые никто не смотрит, не нуждается в новом стеке. Ему нужно сокращение до трёх метрик, которые действительно описывают здоровье системы.