Руководство по построению системы мониторинга продуктовых метрик на Apache Superset: от выбора платформы до внедрения продвинутых алгоритмов анализа
В современной цифровой экономике данные стали ключевым активом, а эффективный мониторинг продуктовых метрик — критически важным процессом для любого успешного бизнеса. Правильно выстроенная система аналитики позволяет не только отслеживать текущее состояние продукта, но и прогнозировать тренды, оперативно реагировать на изменения и принимать обоснованные стратегические решения.
Наша компания, обладающая многолетним опытом внедрения систем бизнес-аналитики для предприятий различного масштаба, подготовила детальное руководство по построению комплексной системы мониторинга на основе Apache Superset. В этом материале мы рассмотрим не только технические аспекты внедрения, но и стратегические подходы к проектированию системы мониторинга, основанные на реальном опыте реализации проектов для крупных российских компаний.
Исторически многие компании начинали с разработки собственных инструментов аналитики, что было оправдано на ранних этапах развития. Однако по мере роста бизнеса и усложнения данных такие решения часто становятся узким местом.
Рассмотрим реальный пример из нашей практики. Один из крупных российских интернет-сервисов использовал внутреннюю систему мониторинга Charts, которая обладала определенными преимуществами: высокая производительность при работе с большими объемами данных, оптимизация под специфические требования бизнеса, а также интеграция с существующей инфраструктурой.
Примечание:
Сharts - внутренний (in-house) инструмент для визуализации данных, разработанный и использовавшийся в ОК (Одноклассниках). Вот его ключевые характеристики:
- Поддержка баз данных: MS SQL, ClickHouse, Apache Druid;
- Основной тип визуализации: линейные графики (Line Charts);
- Высокая скорость работы с большими данными.
Однако, у данного инструмента есть ряд существенных недостатков, среди которых ограниченный функционал (например, отсутствие встроенного редактора запросов), сложность поддержки и развития из-за кастомной архитектуры, а также низкая гибкость и вариативность для пользователей.
В целом, Charts — это кастомное решение, которое компании создают под свои нужды, но которое часто уступает современным open-source-платформам (например, Superset) в гибкости, функциональности и простоте поддержки.
Однако с течением времени проявились серьезные ограничения, такие как лимитированный функционал визуализации и анализа, высокая стоимость поддержки и развития, отсутствие сообщества и экосистемы, а также сложность адаптации к новым бизнес-требованиям.
Отдельно от Charts был реализован проект мониторинга продуктовых метрик: данные ежедневно собирались в Apache Zeppelin, а после их сбора рассчитывались изменения значений метрик.
Для фиксирования изменения метрик были выбраны заранее заданные пороги, при пересечении которых метрика попадала в отчет. Для разных сравниваемых периодов подбирались разные пороги:
Однако, текущий вариант был мало популярен вне команды аналитиков, поэтому мы решили подыскать мониторингу новый дом.
В целом можно сказать, что использование устаревших решений несет в себе ряд серьезных рисков. Во-первых, это технологический долг, а именно накопление устаревшего кода и архитектурных ограничений. Во-вторых, это высокая TCO (Total Cost of Ownership), то есть растущие затраты на поддержку и развитие. В-третьих, это недостаточная гибкость, а именно невозможность быстро адаптироваться к постоянно меняющимся бизнес-требованиям. И, наконец, это проблемы масштабирования, а именно ограничения при работе с растущими объемами данных.
При выборе альтернативы Charts мы хотели найти инструмент, который будет иметь широкий функционал, Определенные технические характеристики, а также экономическую эффективность. Рассмотрим данные аспекты более подробно.
В рамках функциональной полноты нас интересовали такие аспекты, как поддержка различных типов визуализаций, широкие возможности для ad-hoc анализа, а также передовые инструменты для совместной работы.
Говоря об интересующих нас технических характеристиках нас в первую очередь интересовала высокая производительность при больших объемах данных, поддержка различных СУБД и источников данных, а также масштабируемость и отказоустойчивость.
В плане экономической эффективности для нас были важны: прозрачная модель лицензирования, стоимость владения и развития, а также наличие коммерческой поддержки.
Также мы обращали свое внимание на активность развития проекта, размер и активность коммьюнити, а также наличие готовых решений и интеграций.
В процессе выбора альтернативных решений мы провели детальную оценку различных платформ, включая:
- Apache Superset - open-source решение с широкими возможностями кастомизации;
- Grafana - cпециализированное решение для мониторинга временных рядов;
- Tableau - коммерческая платформа с мощными возможностями визуализации;
- Fine BI – специализированное решение с акцентом на бизнес-аналитику
Apache Superset был выбран в качестве наиболее оптимального варианта в первую очередь благодаря сочетанию мощного функционала и открытой лицензии. В частности, нас заинтересовали богатые возможности визуализации (более 50 типов, гибкая система кастомизации + поддержка интерактивных дашбордов). Нас также привлек достаточно мощный SQL editor (встроенный редактор с автодополнением, поддержка различных диалектов SQL, а также возможность сохранения и повторного использования запросов). Немаловажным фактором для нас стала и широкая поддержка источников данных, а именно поддержка реляционных и NoSQL БД, интеграция с облачными хранилищами, а также REST API коннекторы. Помимо этого нам очень понравилась гибкая система безопасности (ролевая модель доступа, интеграция с корпоративными системами аутентификации + аудит действий пользователей).
После выбора инструмента и его «внедрения» в наш ИТ‑ландшафт мы начали перенос мониторинга в Superset. Но практически сразу стало очевидно, что вместо сложного и тяжеловесного мониторинга мы получили ещё более сложный и тяжеловесный мониторинг…
Нам требовался пересмотр формата мониторинга с фокусом на «сильные» стороны и доработкой пробелов.
В результате мы пересобрали поиск пороговых значений для алертов и внедрили новую версию вероятностной вариации алгоритма CUSUM.
В нашем случае алгоритм был значительно упрощён. В итоге используемый нами метод стал достаточно простым в реализации, позволил найти как сдвиги, так и переход от стационарного временного ряда к линейному. Мы отобразили значения и изменения метрик более лаконично. Кроме того, мы написали гайдлайны по оформлению и добавили CSS‑стайлинг с корпоративными цветами и стилем.
На выходе мы получили совершенно новую версию мониторинга в Superset.
В целом можем сказать, что переход от простого отслеживания метрик к более сложной системе мониторинга требует внедрения продвинутых аналитических методик.
Эволюцию подходов к мониторингу вкратце можно описать следующим образом:
- Пороговые значения - простые правила на основе фиксированных порогов;
- Статистические методы - использование стандартных отклонений;
- Машинное обучение - применение алгоритмов для обнаружения аномалий.
Повторимся, что одной из ключевых инноваций в нашем подходе стало внедрение модифицированной версии алгоритма Probabilistic CUSUM для выявления изменений во временных рядах.
-- Пример реализации CUSUM в ClickHouse
WITH
recent_data AS (
SELECT
date,
metric_value,
avg(metric_value) OVER (ORDER BY date ROWS BETWEEN 7 PRECEDING AND 1 PRECEDING) as moving_avg,
stddevSamp(metric_value) OVER (ORDER BY date ROWS BETWEEN 7 PRECEDING AND 1 PRECEDING) as moving_std
FROM product_metrics
WHERE date >= today() - 30
),
cusum_calculation AS (
SELECT
date,
metric_value,
moving_avg,
moving_std,
sum((metric_value - moving_avg) / moving_std) OVER (ORDER BY date) as cusum_value
FROM recent_data
WHERE moving_std > 0
)
SELECT
date,
metric_value,
cusum_value,
abs(cusum_value) > 2.5 as is_anomaly -- Пороговое значение
FROM cusum_calculation
Преимущества подхода в первую очередь заключаются в автоматической адаптации к изменчивости данных, обнаружение как резких, так и постепенных изменений, а также в минимизации ложных срабатываний.
Мы прекрасно понимали, что эффективная визуализация данных — критически важный аспект системы мониторинга. Мы разработали комплексный подход к созданию дашбордов, который включил в себя несколько главных принципов дизайна, а именно:
- Иерархия информации - приоритизация и группировка метрик по importance
- Консистентность - единый стиль всех дашбордов
- Интерактивность - возможности для drilling down и детального анализа
Еще один важный аспект – кастомизация. Мы разработали систему кастомизации Superset с использованием CSS, которая включает в себя корпоративные цветовые схемы, адаптивную верстку для различных устройств, а также оптимизацию для печати и экспорта.
Пример CSS кастомизации:
/* Корпоративная цветовая схема */
.dashboard-header {
background-color: #1a3e6a;
color: #ffffff;
}
/* Адаптация для мобильных устройств */
@media (max-width: 768px) {
.dashboard-component {
margin-bottom: 15px;
}
}
/* Специальные стили для метрик */
.metric-positive {
color: #28a745;
font-weight: bold;
}
.metric-negative {
color: #dc3545;
font-weight: bold;
}
Успешная система мониторинга была интегрирована в общую корпоративную экосистему. Это коснулось системы аутентификации (интеграция с Active Directory, LDAP, OAuth), каналов уведомлений (Email, Slack, Telegram, корпоративные мессенджеры), систем инцидент-менеджмента (Jira, ServiceNow, OTRS), а также источников данных (различные СУБД, API и файловые хранилища).
Архитектуру нашего решения можно представить следующим образом:
[Источники данных] → [Data Warehouse] → [Superset] → [Потребители]
↑ ↑ ↑ ↑
[Мониторинг] [ETL/ELT процессы] [Кэширование] [Уведомления]
На основе проделанной работы можем сказать, что критически успешными факторами нашей работы стали в первую очередь поэтапное внедрение (Start small, iterate quickly), вовлечение стейкхолдеров, а также непрерывное обучение (комплексная программа обучения для различных групп пользователей
Не стоит забывать и о том, что внедрение системы мониторинга должно быть обосновано с точки зрения возврата на инвестиции.
Расчет ROI:
ROI = (Экономия от сокращения инцидентов + Экономия от оптимизации процессов)
/ Затраты на внедрение и поддержку
Итак, наши результаты можно описать следующим образом.
Переезд на Superset был реализован достаточно мягко, затраченные нами ресурсы и время дали ряд неоспоримых плюсов:
- Время на подготовку мониторинга сократилось в разы - при наличии всей необходимой информации, разработанные шаблоны позволяют собрать новый мониторинг в течение одного дня (!)
- Работа с данными стала намного проще и эффективнее. Данные берутся из Hadoop, но расчет агрегированных данных происходит в DWH и переносятся в Clickhouse, результаты мониторинга отправляются на почту..
- Порог входа в мониторинг метрик стал намного ниже. Superset удобен как менеджерам, так и аналитикам.
- Обновленная система позволила сократить количество используемых технологий.










