Перейти к содержанию

·Observability

Из чего собран приватный мониторинг фронтенда

Grafana Faro, OpenTelemetry и собственный бэкенд приёма событий. Дороже, чем подключить сторонний сервис за пять минут — и через год это инфраструктура без внешней зависимости.

Стек приватного мониторинга фронтенда у нас собран из трёх частей: Grafana Faro на стороне браузера, OpenTelemetry как формат и транспорт, собственный бэкенд для приёма событий.

Ни одна из трёх не является нашей разработкой, и это преимущество: заменяемы все.

Зачем свой приём событий

Потому что это единственное место, где обычно возникает привязка.

Faro собирает данные в браузере, OpenTelemetry описывает их в открытом формате. Если приём событий — чужой сервис, то данные всё равно проходят через него, и все рассуждения о приватности заканчиваются на этом шаге.

Свой приёмник — небольшой сервис, и он замыкает контур: данные о поведении ваших пользователей не покидают вашу инфраструктуру.

Почему OpenTelemetry, а не свой формат

Потому что формат — то, что переживает смену инструментов.

Панели можно поменять, приёмник переписать, хранилище заменить. Данные, собранные в открытом стандарте, при этом остаются пригодными. Данные в собственном формате привязывают к собственному инструменту — то есть к нам, а это ровно то, от чего мы предлагаем уйти.

Плюс связность: когда фронтенд и бэкенд говорят на одном формате, сигналы живут вместе. Тогда исчезает ручное сопоставление двух картин и появляется возможность видеть систему целиком.

Что стоит на панели по умолчанию

В продуктах с пользовательским трафиком — основные веб-показатели с разбивкой по странам и устройствам, и отдельный взгляд на хвост распределения.

Последнее — самое важное и самое пропускаемое. Средние значения почти всегда врут: проблема, затрагивающая десятую часть пользователей, в среднем почти не видна, а в верхних процентилях видна сразу.

Разбивка по странам и устройствам нужна по той же причине. Сценарий, который на быстром ноутбуке проходится за секунду, на среднем телефоне в плохой сети может не проходиться вовсе — и в общем среднем это утонет.

Честно про цену

Такое решение дороже, чем подключить сторонний сервис за пять минут. Дороже на старте и требует внимания в эксплуатации: это сервисы, которые надо обновлять и за которыми надо следить.

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

Ключевое слово — «через год». На горизонте недели сторонний сервис выигрывает всегда, и делать вид, что это не так, бессмысленно.

Когда это точно не нужно

Небольшому проекту без своей инфраструктуры. Один статический сайт с тысячей посетителей в день не оправдывает ни сервисов, ни времени на них.

Граница проходит там, где либо есть требование к размещению данных, либо трафик достаточен, чтобы тарифная сетка внешнего сервиса начала работать против вас, либо нужна долгая история, которой в тарифах нет.

Что мы берём в работу

Проекты с нуля: поставить стек, настроить оповещения, научить команду. И разбор существующего зоопарка панелей — что оставить, что убрать, что заменить.

Второе чаще и обычно полезнее. Проект с тридцатью графиками на панели и десятью оповещениями, на которые никто не смотрит, не нуждается в новом стеке. Ему нужно сокращение до трёх метрик, которые действительно описывают здоровье системы.