ClickStack — стек наблюдаемости ClickHouse

ClickStack — это платформа наблюдаемости промышленного уровня, построенная на ClickHouse и объединяющая логи, трейсы, метрики и сеансы в едином высокопроизводительном решении. Предназначенная для мониторинга и отладки сложных систем, ClickStack позволяет разработчикам и SRE выполнять сквозное трассирование проблем без переключения между инструментами или ручного связывания данных по меткам времени или идентификаторам корреляции.
В основе ClickStack лежит простая, но мощная идея: все данные наблюдаемости должны поступать в систему в виде широких, информативных событий. Эти события хранятся в таблицах ClickHouse по типам данных — логи, трейсы, метрики и сеансы, — но при этом остаются полностью доступными для выполнения запросов и перекрёстной корреляции на уровне базы данных.
ClickStack создан для эффективной обработки рабочих нагрузок с высокой кардинальностью, используя колоночную архитектуру ClickHouse, встроенную поддержку JSON и полностью параллельный движок выполнения. Это обеспечивает выполнение запросов с задержкой менее секунды по огромным наборам данных, быстрые агрегации на больших интервалах времени и глубокий анализ отдельных трейсов. JSON хранится в сжатом колоночном формате, что позволяет изменять схему без ручного вмешательства или предварительного определения.
Возможности
Стек включает несколько ключевых возможностей, предназначенных для отладки и анализа первопричин:
- Коррелировать и искать логи, метрики, повторы сессий (session replays) и трейсы в одном месте
- Схемо-независимая работа поверх вашей существующей схемы ClickHouse
- Молниеносный поиск и визуализации, оптимизированные для ClickHouse
- Интуитивно понятный синтаксис полнотекстового и параметрического поиска (например,
level:err), SQL по желанию - Анализировать тренды аномалий с помощью дельт событий
- Настраивать оповещения всего в несколько кликов
- Создавать дашборды по событиям с высокой кардинальностью без сложного языка запросов
- Нативная поддержка запросов к JSON-строкам
- Live tail логов и трейсов для получения самых свежих событий
- Поддержка OpenTelemetry (OTel) «из коробки»
- Мониторинг состояния и производительности от HTTP-запросов до запросов к БД (APM)
- Дельты событий для выявления аномалий и регрессий производительности
- Распознавание шаблонов в логах
Компоненты
ClickStack состоит из трех основных компонентов:
- HyperDX UI – специализированный интерфейс для исследования и визуализации данных наблюдаемости
- OpenTelemetry collector – специально разработанный, предварительно сконфигурированный коллектор с продуманной схемой для логов, трассировок и метрик
- ClickHouse – высокопроизводительная аналитическая база данных в основе стека
Эти компоненты могут развертываться независимо друг от друга или совместно. Также доступна веб-версия HyperDX UI, позволяющая подключаться к существующим развертываниям ClickHouse без дополнительной инфраструктуры.
Для начала работы ознакомьтесь с руководством по началу работы, а затем загрузите пример набора данных. Вы также можете изучить документацию по вариантам развертывания и передовым практикам эксплуатации в production-средах.
Принципы
ClickStack спроектирован на основе ряда ключевых принципов, которые на всех уровнях стека наблюдаемости отдают приоритет простоте использования, производительности и гибкости:
Простая настройка за считанные минуты
ClickStack сразу готов к работе с любым экземпляром ClickHouse и любой схемой, требуя минимальной настройки. Независимо от того, начинаете ли вы с нуля или интегрируете его в существующую инфраструктуру, вы сможете запустить его в считанные минуты.
Удобный и специализированный
Интерфейс HyperDX поддерживает как SQL, так и синтаксис Lucene, позволяя пользователям выбирать тот язык запросов, который лучше вписывается в их рабочий процесс. Изначально спроектированный для задач наблюдаемости, интерфейс оптимизирован для того, чтобы помогать командам быстро находить первопричины и легко ориентироваться в сложных данных.
Сквозная наблюдаемость
ClickStack обеспечивает полную наблюдаемость всего стека — от пользовательских сессий на фронтенде до метрик инфраструктуры бэкенда, логов приложений и распределённых трассировок. Это единое представление позволяет выполнять глубокий анализ и сопоставление данных по всей системе.
Создано для ClickHouse
Каждый слой стека спроектирован так, чтобы в полной мере использовать возможности ClickHouse. Запросы оптимизированы для задействования аналитических функций и колоночного движка ClickHouse, обеспечивая быстрый поиск и агрегацию по огромным объёмам данных.
Нативная поддержка OpenTelemetry
ClickStack нативно интегрирован с OpenTelemetry и принимает все данные через конечную точку коллектора OpenTelemetry. Для продвинутых пользователей также поддерживается прямая ингестия в ClickHouse с использованием нативных файловых форматов, пользовательских конвейеров или сторонних инструментов, таких как Vector.
Открытый исходный код и полная настраиваемость
ClickStack полностью с открытым исходным кодом и может быть развёрнут где угодно. Схема гибкая и может изменяться пользователем, а UI спроектирован так, чтобы его можно было конфигурировать под пользовательские схемы без необходимости менять сам UI. Все компоненты — включая коллекторы, ClickHouse и UI — могут масштабироваться независимо друг от друга в соответствии с потребностями по ингестии, выполнению запросов или хранению данных.
Обзор архитектуры

ClickStack состоит из трёх основных компонентов:
-
HyperDX UI
Удобный интерфейс, созданный для задач наблюдаемости. Поддерживает запросы в стиле Lucene и SQL, интерактивные дашборды, оповещения, исследование трассировок и многое другое — всё оптимизировано для ClickHouse в качестве бекенда. -
OpenTelemetry collector
Специально разработанный коллектор, настроенный с предопределённой схемой, оптимизированной для ингестии в ClickHouse. Получает логи, метрики и трассировки по протоколам OpenTelemetry и записывает их напрямую в ClickHouse с использованием эффективных пакетных вставок. -
ClickHouse
Высокопроизводительная аналитическая база данных, которая выступает в роли центрального хранилища данных для событий с широкой структурой. ClickHouse обеспечивает быстрый поиск, фильтрацию и агрегацию на больших объёмах данных, используя свой колонночный движок и встроенную поддержку JSON.
Помимо этих трёх компонентов, ClickStack использует экземпляр MongoDB для хранения состояния приложения, такого как дашборды, учётные записи пользователей и параметры конфигурации.
Полная схема архитектуры и подробности развертывания приведены в разделе «Architecture».
Пользователям, планирующим развернуть ClickStack в продуктивной среде, рекомендуется ознакомиться с руководством «Production».